Co je XML?
XML je zkratka pro eXtensible Markup Language. Byl navržen k ukládání a přepravě malého až středního množství dat a je široce používán ke sdílení strukturovaných informací.
Python umožňuje analyzovat a upravit dokument XML. Abyste mohli analyzovat XML dokument, musíte mít v paměti celý XML dokument. V tomto kurzu uvidíme, jak můžeme použít třídu minidomu XML v Pythonu k načtení a analýze souboru XML.
V tomto tutoriálu se naučíme -
- Jak analyzovat XML pomocí minidomu
- Jak vytvořit uzel XML
- Jak analyzovat XML pomocí ElementTree
Jak analyzovat XML pomocí minidomu
Vytvořili jsme ukázkový soubor XML, který budeme analyzovat.
Krok 1) Uvnitř souboru vidíme křestní jméno, příjmení, domov a oblast odbornosti (SQL, Python, testování a podnikání)
Krok 2) Po analýze dokumentu vytiskneme „název uzlu“ kořene dokumentu a „ název první značky dítěte“ . Název značky a jméno uzlu jsou standardní vlastnosti souboru XML.
- Importujte modul xml.dom.minidom a deklarujte soubor, který má být analyzován (myxml.xml)
- Tento soubor obsahuje základní informace o zaměstnanci, jako je křestní jméno, příjmení, domov, odbornost atd.
- K načtení a analýze souboru XML používáme funkci parse na minidomu XML
- Máme proměnnou doc a doc dostane výsledek funkce analýzy
- Chceme ze souboru vytisknout nodename a podřízený tag tag, takže je deklarujeme ve funkci tisku
- Spusťte kód - Vytiskne jméno uzlu (#document) ze souboru XML a první podřízený název značky (zaměstnanec) ze souboru XML
Poznámka :
Nodename a child tagname jsou standardní názvy nebo vlastnosti domény XML. V případě, že nejste obeznámeni s těmito typy konvencí pojmenování.
Krok 3) Můžeme také vyvolat seznam značek XML z dokumentu XML a vytisknout. Zde jsme vytiskli sadu dovedností, jako je SQL, Python, testování a podnikání.
- Deklarujte variabilní odbornost, ze které získáme veškerou odbornost, kterou má zaměstnanec
- Použijte standardní funkci dom nazvanou „getElementsByTagName“
- Tím získáte všechny prvky pojmenované dovednost
- Deklarujte smyčku nad každou z dovednostních značek
- Spusťte kód - zobrazí se seznam čtyř dovedností
Jak vytvořit uzel XML
Můžeme vytvořit nový atribut pomocí funkce "createElement" a poté tento nový atribut nebo značku připojit ke stávajícím značkám XML. Do našeho souboru XML jsme přidali novou značku „BigData“.
- Chcete-li přidat nový atribut (BigData) do stávající značky XML, musíte kódovat
- Poté musíte vytisknout značku XML s novými atributy připojenými ke stávající značce XML
- K přidání nového XML a jeho přidání do dokumentu používáme kód „doc.create elements“
- Tento kód vytvoří novou značku dovednosti pro náš nový atribut „Big-data“
- Přidejte tuto značku dovednosti do dokumentu první dítě (zaměstnanec)
- Spusťte kód - objeví se nová značka „big data“ s dalším seznamem odborných znalostí
Příklad analyzátoru XML
Příklad Pythonu 2
importovat xml.dom.minidomdef main ():# použijte funkci parse () k načtení a analýze souboru XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# vytiskne uzel dokumentu a název první podřízené značkyvytisknout doc.nodeNamevytisknout doc.firstChild.tagName# získejte seznam XML tagů z dokumentu a vytiskněte všechnyodbornost = doc.getElementsByTagName ("odbornost")tisk "% d odborných znalostí:"% odborných znalostí. délkapro dovednosti v odbornosti:print skill.getAttribute ("jméno")# vytvořte novou značku XML a přidejte ji do dokumentunewexpertise = doc.createElement ("odbornost")newexpertise.setAttribute ("name", "BigData")doc.firstChild.appendChild (newexpertise)tisk " "odbornost = doc.getElementsByTagName ("odbornost")tisk "% d odborných znalostí:"% odborných znalostí. délkapro dovednosti v odbornosti:print skill.getAttribute ("jméno")if name == "__main__":hlavní();
Příklad Pythonu 3
importovat xml.dom.minidomdef main ():# použijte funkci parse () k načtení a analýze souboru XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# vytiskne uzel dokumentu a název první podřízené značkytisk (doc.nodeName)tisk (doc.firstChild.tagName)# získejte seznam XML tagů z dokumentu a vytiskněte všechnyodbornost = doc.getElementsByTagName ("odbornost")tisk ("% d odborných znalostí:"% odborných znalostí. délka)pro dovednosti v odbornosti:print (skill.getAttribute ("name"))# vytvořte novou značku XML a přidejte ji do dokumentunewexpertise = doc.createElement ("odbornost")newexpertise.setAttribute ("name", "BigData")doc.firstChild.appendChild (newexpertise)tisk (" ")odbornost = doc.getElementsByTagName ("odbornost")tisk ("% d odborných znalostí:"% odborných znalostí. délka)pro dovednosti v odbornosti:print (skill.getAttribute ("name"))pokud __name__ == "__main__":hlavní();
Jak analyzovat XML pomocí ElementTree
ElementTree je API pro manipulaci s XML. ElementTree je snadný způsob zpracování souborů XML.
Jako ukázková data používáme následující dokument XML:
- SQL
- Python
Čtení XML pomocí ElementTree:
nejprve musíme importovat modul xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Nyní načtěte kořenový prvek:
root = tree.getroot()
Následuje kompletní kód pro čtení nad xml dat
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ýstup:
Expertise Data:SQLPython
Souhrn:
Python umožňuje analyzovat celý dokument XML najednou a ne pouze jeden řádek najednou. Abyste mohli analyzovat XML dokument, musíte mít celý dokument v paměti.
- Analyzovat dokument XML
- Importovat xml.dom.minidom
- Pomocí funkce „parse“ analyzujte dokument (doc = xml.dom.minidom.parse (název souboru);
- Zavolejte seznam značek XML z dokumentu XML pomocí kódu (= doc.getElementsByTagName ("název značek XML")
- Vytvoření a přidání nového atributu v dokumentu XML
- Použijte funkci "createElement"