Výukový program pro Python XML Parser: Přečtěte si příklad souboru XML (Minidom, ElementTree)

Obsah:

Anonim

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“.

  1. Chcete-li přidat nový atribut (BigData) do stávající značky XML, musíte kódovat
  2. 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:

SQLPython

Č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"