1. XML Introduktion
XML (eXtensible Markup Language) avser ett utbyggbart markeringsspråk, utformat för att överföra och lagra data, och har blivit kärnan i många nya teknologier idag, med olika tillämpningar inom olika områden. Det är en oundviklig produkt av webbens utveckling till en viss nivå, som har SGML:s kärnegenskaper, HTML:s enkla egenskaper och många nya funktioner såsom tydlig och välstrukturerad.
Test. XML-fil
<?xml version="1.0" kodning="utf-8"?> <catalog> <maxid>4</maxid> <inloggningsanvändarnamn="pytest" passwd='123456'> <caption>Python</caption> <item id="4"> <caption>Test</caption> </item> </login> <item id="2"> <caption>Zope</caption> </item> </catalog> För en detaljerad introduktion till XML, se här:http://www.w3school.com.cn/xmldom/dom_nodetype.asp
2. XML dokumentparsning
Det finns tre vanliga metoder för Python att tolka XML: en är xml.dom.*-modulen, som är en implementation av W3C DOM API, vilket är mycket lämpligt om du behöver bearbeta DOM-API:et; Den andra är xml.sax.*-modulen, som är en implementation av SAX API:et, vilket offrar bekvämlighet för snabbhet och minnesanvändning, och SAX är ett händelsebaserat API, vilket innebär att det kan bearbeta ett stort antal dokument "i luften" utan att behöva ladda in dem helt i minnet; Den tredje är xml.etree.ElementTree-modulen (ET för kort), som tillhandahåller ett lättviktigt Python-liknande API, som är mycket snabbare än DOM, och det finns många trevliga API:er som kan användas, jämfört med SAX, ET:s ET.iterparse erbjuder också en "in the air"-processmetod, det finns inget behov av att ladda hela dokumentet i minnet, och genomsnittlig prestanda för ET är liknande SAX. API:et är dock lite mer effektivt och lätt att använda.
2.1 xml.dom.*
Dokumentobjektmodellen (DOM) är ett standardiserat programmeringsgränssnitt som rekommenderas av W3C-organisationen för att hantera utbyggbara markeringsspråk. När en DOM-parser tolkar ett XML-dokument läser den hela dokumentet på en gång, lagrar alla element i dokumentet i en trädstruktur i minnet, och sedan kan du använda olika funktioner som tillhandahålls av DOM för att läsa eller ändra innehållet och strukturen i dokumentet, eller skriva det modifierade innehållet till xml-filen. Använd xml.dom.minidom i Python för att tolka xml-filen.
a. Hämta subtaggar b. Etiketter som skiljer samma taggnamn åt c. Hämta taggattributvärdet d. Hämta data mellan etikettpar
Utdata:
2.2 xml.etree.ElementTree
ElementTree föddes för att hantera XML, och det finns två implementationer i Python-standardbiblioteket: en är en ren Python-implementation, såsom xml.etree.ElementTree, och den andra är en snabbare xml.etree.cElementTree. Observera: Försök använda C-språket för att implementera det, eftersom det är snabbare och förbrukar mindre minne.
a. Korsa nästa lager av rotnoden b. Index åtkomst till individuella taggar, attribut och text c. Hitta den angivna taggen under root d. Att navigera XML-filer e. Modifiera XML-filen
Utdata:
Bifogat:
2.3 xml.sax.*
SAX är ett händelsedrivet API som använder SAX för att tolka XML i två delar: parsern och händelsehanteraren.
Parsern ansvarar för att läsa XML-dokumentet och skicka händelser till händelsehanteraren, såsom elementstart- och elementslutshändelser
Händelseprocessorn ansvarar för att svara på händelserna och bearbeta XML-data som skickas
Vanliga scenarier:
(1) Behandla stora dokument
(2) Endast en del av dokumentet krävs, eller så erhålls specifik information endast från filen
(3) Jag vill bygga min egen objektmodell
|