Výukový program pre analyzátor jazyka Python XML: Prečítajte si príklad súboru XML (Minidom, ElementTree)

Obsah:

Anonim

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

  1. Musíte pridať nový atribút (BigData) do existujúcej značky XML
  2. 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:

SQLPython

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