Maison > développement back-end > Tutoriel Python > Introduction détaillée au XML de la fonction de sérialisation Python

Introduction détaillée au XML de la fonction de sérialisation Python

高洛峰
Libérer: 2017-03-26 17:14:19
original
1660 Les gens l'ont consulté

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>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal