Home >Backend Development >Python Tutorial >Detailed introduction to xml of python serialization function
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!