Gabay sa XML gamit ang Python: Standard Library hanggang lxml

1. Panimula

Ang Python ay isang flexible na programming language na madaling humawak ng iba’t ibang anyo ng data. Kabilang dito, ang XML (Extensible Markup Language) ay madalas gamitin para sa palitan at pag-iimbak ng istrukturadong data, at malawakang ginagamit sa mga tugon ng API at mga configuration file. Sa Python, maaaring madaling manipulahin ang XML gamit ang standard library o mga external library. Sa artikulong ito, ipapaliwanag namin nang malinaw ang mga pangunahing operasyon hanggang sa mga advanced na gamit ng XML gamit ang Python.

2. Pagpapakilala sa mga librarya ng Python para sa paghawak ng XML

2.1 Standard na librarya: xml.etree.ElementTree

Ang xml.etree.ElementTree, na isang standard na librarya ng Python, ay isang kapaki-pakinabang na tool na nagpapadali ng pagbasa, pagsulat, at paggalugad o pag-edit ng istruktura ng puno ng mga XML file.

  • Pangunahing kaalaman sa pag-parse: import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() print(root.tag) # paglabas: "data" Sa code na ito,data.xmlNagbasa ng XML file na tinatawag na ‘という’ at ipinapakita ang tag ng root element. Makakumpirma na ang output ay ‘data’.
  • Pangangasiwa ng error kapag hindi umiiral ang file:
    Kung hindi umiiral ang fileFileNotFoundErrorDahil nangyayari ito, maaari mong idagdag ang paghawak ng exception tulad ng sumusunod.
    try: tree = ET.parse('data.xml') root = tree.getroot() except FileNotFoundError: print("Hindi mahanap ang file.")

2.2 Panlabas na librarya: lxml

Kapag kailangan ng mas advanced na pagproseso ng XML, inirerekomenda ang lxml na librarya. Ang lxml ay sumusuporta sa malakas na pagproseso ng XML gamit ang XPath at XSLT, na nagpapadali ng mga operasyong mahirap gawin gamit ang standard na librarya.

  • Pagkuha ng mga elemento gamit ang XPath:
    from lxml import etree tree = etree.parse('data.xml') countries = tree.xpath('//country[@name="Liechtenstein"]') print(countries[0].tag) # Paglabas: "country"
    Sa code na ito,nameAng katangian ay 「Liechtenstein」countryKinukuha ang mga elemento.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. Pag-parse at Pag-manipula ng XML

3.1 Pangunahing Hakbang sa Pag-parse

Upang i-parse ang XML file at manipulahin ang istruktura ng puno, gamitin ang xml.etree.ElementTree‘s parse(). Sa metodong ito, binabasa ang XML file at kinukuha ang root element ng puno.

  • Parse mula sa file:
    import xml.etree.ElementTree as ET tree = ET.parse('example.xml') root = tree.getroot() print(root.tag) # Paglabas: "rootTag"
    Sa code na ito, XML fileexample.xmlI-load ito at ipakita ang tag name ng root element.

3.2 Paghahanap ng Elemento at Pag-manipula ng mga Katangian

Para maghanap ng mga XML elemento, gamitin ang find() at findall(). Sa pamamagitan nito, madaling makuha ang mga tiyak na elemento o katangian.

  • Paghahanap ng mga elemento at pagkuha ng mga katangian: country = root.find('country') print(country.get('name')) # Output: "Liechtenstein"
  • pag-manipula ng katangianUpang manipulahin ang mga katangian ng elemento ng XML,get()at kunin,set()Itinatakda ito.
    country.set('currency', 'CHF') print(country.attrib) # Output: {'name': 'Liechtenstein', 'currency': 'CHF'}

4. Pag-edit at Pag-save ng XML

4.1 Paraan ng Pag-edit ng Elemento

Sa pamamagitan ng pagbabago ng teksto o mga katangian ng XML na elemento, maaaring i-edit ang nilalaman ng XML. Halimbawa, kapag binabago ang teksto ng isang elemento, ginagawa ito tulad ng sumusunod.

  • I-edit ang teksto ng elemento:
    rank = root.find('.//rank') rank.text = '2' print(rank.text) # Output: "2"

4.2 Pagsusulat sa XML File

Upang i-save ang binagong XML sa isang file, gamitin ang write() method.

  • Pag-iimbak ng XML:
    tree.write('updated_data.xml')

5. Pagproseso ng Aplikasyon gamit ang Panlabas na Library

5.1 Advanced XML Operations gamit ang lxml

lxmlKapag ginamit ang library, maaari kang magsagawa ng kumplikadong paghahanap gamit ang XPath, at mag-convert ng XML sa ibang format gamit ang XSLT.

  • Paghahanap ng mga elemento gamit ang XPath:
    from lxml import etree tree = etree.parse('data.xml') countries = tree.xpath('//country') for country in countries: print(country.get('name'))

5.2 Pag-convert ng XML gamit ang XSLT

Ipinapakita ang halimbawa ng pag-convert ng XML sa HTML gamit ang XSLT.

  • Pagbabago mula XML patungong HTML:
    from lxml import etree xml_tree = etree.parse('data.xml') xsl_tree = etree.parse('style.xsl') transform = etree.XSLT(xsl_tree) result_tree = transform(xml_tree) result_tree.write('output.html', pretty_print=True)

6. Praktis: Sample Code at Paliwanag

6.1 Halimbawa ng Pagkuha ng Data Mula sa XML

Ito ay sample code na kumukuha ng data mula sa XML file at nagpapakita ng tiyak na impormasyon.

  • sample code: import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() for country in root.findall('country'): name = country.get('name') rank = country.find('rank').text print(f"Country: {name}, Rank: {rank}")

6.2 Halimbawa ng Pag-edit at Pag-save ng XML

Ito ay sample code na nag-e-edit ng mga halaga ng elemento ng XML at sine-save ang mga binagong nilalaman.

  • sample code: import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() rank = root.find('.//rank') rank.text = '2' tree.write('updated_data.xml')

7. Buod

Kapag gumagamit ng XML sa Python, sa pamamagitan ng paggamit ng standard library na xml.etree.ElementTree, madali mong magagawa ang mga pangunahing operasyon sa XML. Bukod pa rito, sa paggamit ng lxml, posible ang mga advanced na operasyon tulad ng XPath at XSLT. Gamitin ang mga code na ipinakita sa artikulo bilang sanggunian at subukang manipulahin ang XML mismo.