Cet article présente principalement en détail la fonction de sérialisation XML de Python, qui a une certaine valeur de référence. Les amis intéressés peuvent se référer à
<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>
Ce qui précède est un exemple de texte XML si vous le souhaitez. traiter le texte XML, vous devez importer un module.
import xml.etree.ElementTree as ET
#Parce que le nom du module xml est trop long, j'avais l'habitude de lui donner un alias, appelé ET.
ET.parse() lit le texte XML directement à partir du fichier et analyse le texte XML dans un objet d'arborescence XML.
tree = ET.parse("diva.xml")
Obtenir le nœud racine de l'arborescence XML.
root = tree.getroot()
Obtenir l'étiquette (nom) du nœud racine.
root.tag
#Traverse xml document
pour l'enfant en racine :
print(child.tag, child.attrib)
pour moi en enfant :
print(i.tag,i.text)
Attention ! Si vous souhaitez obtenir les nœuds enfants sous le texte XML, vous devez les obtenir via le nœud racine. Ajoutez .tag après n'importe quel nœud pour obtenir le nom de la balise dans le nœud. Ajoutez .text à n'importe quel nœud pour obtenir le contenu contenu dans chacun. node. , attrib peut obtenir les attributs qui existent dans l'étiquette du nœud.
# Obtenez le contenu texte dans la balise album_sales_volume de chaque nœud enfant.
for i in root.iter("album_sales_volume") :
print i.text
#Si vous souhaitez récupérer les attributs dans l'étiquette, changez directement le texte attribuer C'est tout.
Modification :
pour le nœud dans root.iter('year') :
new_year = int(node.text) + 1
nœud. text = str(new_year) #Modifier le contenu
node.set("flop","no") #Modifier les attributs de l'étiquette.
tree.write("xmltest.xml")
Supprimer :
pour le pays dans root.findall('country'):
rank = int(country.find('rank').text)
si rang > 50 :
root.remove(country)
tree.write('output. xml')
root.findall() est utilisé pour rechercher à partir du nœud racine et trouver le nœud enfant avec le nom spécifié.
root.remove() est utilisé pour supprimer un nœud.
Générer du texte XML.
importer xml.etree.ElementTree en tant qu'ET
new_xml = ET.Element("namelist")
name = ET.SubElement(new_xml,"name",attrib= {"enrolled": "oui"})
age = ET.SubElement(name,"age",attrib={"checked":"no"})
sexe = 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) #Générer un objet document
et.write("test.xml", encoding="utf-8",xml_declaration=True)
ET.dump(new_xml) #Imprimer le format généré
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!