Home >Backend Development >Python Tutorial >Detailed introduction to xml of python serialization function

Detailed introduction to xml of python serialization function

高洛峰
高洛峰Original
2017-03-26 17:14:191650browse

This article mainly introduces the xml of Python serialization function in detail, which has certain reference value. Interested friends can refer to it.

<diva_list>
    <diva name="hamasaki ayumi">
        <state flop="yes">1</state>
        <year>1978</year>
        <album_sales_volume>27804358</album_sales_volume>
        <album name="A song for xx" sn="1st"/>
        <album name="LOVEppears" sn="2nd"/>
    </diva>
    <diva name="koda kumi">
        <state flop="yes">2</state>
        <year>1982</year>
     <album_sales_volume>8273371</album_sales_volume>
        <album name="affection" sn="1st"/>
        <album name="grow into one" sn="2nd"/>
    </diva>
</diva_list>

The above is an example of an xml text. If you want To process xml text, you need to import a module.

import xml.etree.ElementTree as ET

#Because the name of the xml module is too long, I used as to give it an alias, called ET.

ET.parse() reads xml text directly from the file and parses the xml text into an xml tree object.

tree = ET.parse("diva.xml")

Get the root node of the xml tree.

root = tree.getroot()

Get the label (name) of the root node.

root.tag

#Traverse xml document

for child in root:

print(child.tag, child.attrib)

for i in child:

print(i.tag,i.text)

Attention! If you want to get the child nodes under the xml text, you must get it through the root node. Add .tag after any node to get the tag name in the node. Add .text to any node to get the content contained in each node. , attrib can get the attributes that exist in the label in the node.

#Get the text content in the album_sales_volume label of each child node.

for i in root.iter("album_sales_volume"):

print i.text

#If you want to get the attributes in the label, directly change text to attrib That’s it.

Modification:

for node in root.iter('year'):

new_year = int(node.text) + 1

node. text = str(new_year) #Modify content

node.set("flop","no") #Modify label attributes.

tree.write("xmltest.xml")

Delete:

for country in root.findall('country'):

rank = int(country.find('rank').text)

if rank > 50:

root.remove(country)

tree.write('output. xml')

root.findall() is used to search starting from the root node and find the child node with the specified name.

root.remove() is used to delete a node.

Generate xml text.

import xml.etree.ElementTree as ET

new_xml = ET.Element("namelist")

name = ET.SubElement(new_xml,"name",attrib= {"enrolled":"yes"})

age = ET.SubElement(name,"age",attrib={"checked":"no"})

sex = ET. SubElement(name,"sex")

sex.text = '33'

name2 = ET.SubElement(new_xml,"name",attrib={"enrolled":"no"} )

age = ET.SubElement(name2,"age")

age.text = '19'

et = ET.ElementTree(new_xml) #Generate document object

et.write("test.xml", encoding="utf-8",xml_declaration=True)

ET.dump(new_xml) #Print the generated format

The above is the detailed content of Detailed introduction to xml of python serialization function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn