Čo je to XML?
XML je skratka pre eXtensible Markup Language. Bol navrhnutý na ukladanie a prepravu malého až stredného množstva údajov a je široko používaný na zdieľanie štruktúrovaných informácií.
Python vám umožňuje analyzovať a upravovať dokument XML. Aby ste mohli analyzovať XML dokument, musíte mať v pamäti celý XML dokument. V tomto tutoriále uvidíme, ako môžeme použiť triedu minidomu XML v Pythone na načítanie a analýzu súboru XML.
V tomto výučbe sa naučíme -
- Ako analyzovať XML pomocou minidomu
- Ako vytvoriť uzol XML
- Ako analyzovať XML pomocou ElementTree
Ako analyzovať XML pomocou minidomu
Vytvorili sme vzorový súbor XML, ktorý ideme analyzovať.
Krok 1) Vo vnútri súboru môžeme vidieť meno, priezvisko, domov a oblasť odbornosti (SQL, Python, testovanie a podnikanie)
Krok 2) Po analýze dokumentu vytlačíme „názov uzla“ koreňa dokumentu a „ názov prvého dieťaťa“ . Názov značky a nodename sú štandardné vlastnosti súboru XML.
- Importujte modul xml.dom.minidom a deklarujte súbor, ktorý sa má analyzovať (myxml.xml)
- Tento súbor obsahuje základné informácie o zamestnancovi, ako je meno, priezvisko, dom, odbornosť atď.
- Na načítanie a analýzu súboru XML používame funkciu syntaktickej analýzy na minidome XML
- Máme premennú doc a doc dostane výsledok funkcie analýzy
- Chceme vytlačiť zo súboru meno a meno dieťaťa a potom ho deklarovať vo funkcii tlače
- Spustiť kód - Vytlačí sa meno (#document) zo súboru XML a prvé podradené meno (zamestnanec) zo súboru XML
Poznámka :
Nodename a child tagname sú štandardné názvy alebo vlastnosti domény XML. V prípade, že nie ste oboznámení s týmto typom konvencií pomenovania.
Krok 3) Môžeme tiež zavolať zoznam značiek XML z dokumentu XML a vytlačiť ich. Tu sme vytlačili súbor zručností ako SQL, Python, testovanie a podnikanie.
- Deklarujte premenlivú odbornosť, z ktorej vyťažíme všetky odborné znalosti, ktoré zamestnanec má
- Použite štandardnú funkciu dom nazvanú „getElementsByTagName“
- Získate tak všetky prvky pomenované zručnosť
- Deklarujte slučku nad každou zo značiek schopností
- Spustite kód - poskytne zoznam štyroch zručností
Ako vytvoriť uzol XML
Nový atribút môžeme vytvoriť pomocou funkcie „createElement“ a potom pridať tento nový atribút alebo značku k existujúcim značkám XML. Do nášho súboru XML sme pridali novú značku „BigData“.
- Musíte pridať nový atribút (BigData) do existujúcej značky XML
- Potom musíte vytlačiť značku XML s novými atribútmi pripojenými k existujúcej značke XML
- Na pridanie nového XML a jeho pridanie do dokumentu používame kód „doc.create elements“
- Tento kód vytvorí novú značku zručnosti pre náš nový atribút „Big-data“
- Pridajte túto značku zručnosti do dokumentu prvé dieťa (zamestnanec)
- Spustite kód - nová značka „big data“ sa zobrazí s ďalším zoznamom odborných znalostí
Príklad analyzátora XML
Príklad v jazyku Python 2
importovať xml.dom.minidomdef main ():# použite funkciu parse () na načítanie a analýzu súboru XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# vytlačte uzol dokumentu a názov prvej podradenej značkyvytlačiť doc.nodeNamevytlačiť doc.firstChild.tagName# získa z dokumentu zoznam značiek XML a každú z nich vytlačíodbornosť = doc.getElementsByTagName ("odbornosť")vytlačiť "% d odbornosť:"% odbornosť.dĺžkapre odbornú spôsobilosť:print skill.getAttribute ("meno")# vytvorte novú značku XML a pridajte ju do dokumentunewexpertise = doc.createElement ("odbornosť")newexpertise.setAttribute ("name", "BigData")doc.firstChild.appendChild (newexpertise)vytlačiť „“odbornosť = doc.getElementsByTagName ("odbornosť")vytlačiť "% d odbornosť:"% odbornosť.dĺžkapre odbornú spôsobilosť:print skill.getAttribute ("meno")ak meno == "__main__":hlavný();
Príklad v jazyku Python 3
importovať xml.dom.minidomdef main ():# použite funkciu parse () na načítanie a analýzu súboru XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# vytlačte uzol dokumentu a názov prvej podradenej značkyprint (doc.nodeName)print (doc.firstChild.tagName)# získa z dokumentu zoznam značiek XML a každú z nich vytlačíodbornosť = doc.getElementsByTagName ("odbornosť")tlač ("% d odborných znalostí:"% odborných znalostí. dĺžka)pre odbornú spôsobilosť:print (skill.getAttribute ("meno"))# vytvorte novú značku XML a pridajte ju do dokumentunewexpertise = doc.createElement ("odbornosť")newexpertise.setAttribute ("name", "BigData")doc.firstChild.appendChild (newexpertise)print ("")odbornosť = doc.getElementsByTagName ("odbornosť")tlač ("% d odborných znalostí:"% odborných znalostí. dĺžka)pre odbornú spôsobilosť:print (skill.getAttribute ("meno"))ak __name__ == "__main__":hlavný();
Ako analyzovať XML pomocou ElementTree
ElementTree je API na manipuláciu s XML. ElementTree je jednoduchý spôsob spracovania súborov XML.
Ako vzorové údaje používame nasledujúci dokument XML:
- SQL
- Python
Čítanie XML pomocou ElementTree:
najskôr musíme importovať modul xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Teraz načítajme koreňový prvok:
root = tree.getroot()
Nasleduje kompletný kód na čítanie nad xml dát
import xml.etree.ElementTree as ETtree = ET.parse('items.xml')root = tree.getroot()# all items dataprint('Expertise Data:')for elem in root:for subelem in elem:print(subelem.text)výkon:
Expertise Data:SQLPython
Zhrnutie:
Python vám umožňuje analyzovať celý dokument XML naraz, a nielen jeden riadok po druhom. Aby ste mohli analyzovať XML dokument, musíte mať v pamäti celý dokument.
- Analyzovať dokument XML
- Importovať xml.dom.minidom
- Pomocou funkcie „parse“ analyzujte dokument (doc = xml.dom.minidom.parse (názov súboru);
- Vyvolajte zoznam značiek XML z dokumentu XML pomocou kódu (= doc.getElementsByTagName ("názov značiek XML"))
- Vytvoriť a pridať nový atribút do dokumentu XML
- Použite funkciu "createElement"