Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in XML der Python-Serialisierungsfunktion

Detaillierte Einführung in XML der Python-Serialisierungsfunktion

高洛峰
高洛峰Original
2017-03-26 17:14:191614Durchsuche

In diesem Artikel wird hauptsächlich die XML-Serialisierungsfunktion vorgestellt, die einen gewissen Referenzwert hat.

<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>

Das Obige ist ein Beispiel für einen XML-Text Um XML-Text zu verarbeiten, müssen Sie ein Modul importieren.

xml.etree.ElementTree als ET importieren

#Da der Name des XML-Moduls zu lang ist, habe ich as verwendet, um ihm einen Alias ​​namens ET zu geben.

ET.parse() liest XML-Text direkt aus der Datei und analysiert den XML-Text in ein XML-Baumobjekt.

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

Ruft den Wurzelknoten des XML-Baums ab.

root = tree.getroot()

Rufen Sie die Bezeichnung (Name) des Wurzelknotens ab.

root.tag

#Traverse XML-Dokument

für Kind im Stammverzeichnis:

print(child.tag, child.attrib)

für mich im Kind:

print(i.tag,i.text)

Achtung! Wenn Sie die untergeordneten Knoten unter dem XML-Text abrufen möchten, müssen Sie .tag nach jedem Knoten hinzufügen, um den Tag-Namen im Knoten zu erhalten, um den darin enthaltenen Inhalt zu erhalten node, attrib kann die Attribute abrufen, die in der Beschriftung im Knoten vorhanden sind.

# Holen Sie sich den Textinhalt im Tag album_sales_volume jedes untergeordneten Knotens.

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

print i.text

#Wenn Sie die Attribute im Etikett erhalten möchten, ändern Sie den Text direkt zuschreiben Das ist es.

Änderung:

für Knoten in root.iter('year'):

new_year = int(node.text) + 1

Knoten. text = str(new_year) #Inhalt ändern

node.set("flop","no") #Labelattribute ändern.

tree.write("xmltest.xml")

Löschen:

für Land in root.findall('country'):

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

if rank > 50:

root.remove(country)

tree.write('output. xml')

root.findall() wird verwendet, um ausgehend vom Wurzelknoten zu suchen und den untergeordneten Knoten mit dem angegebenen Namen zu finden.

root.remove() wird verwendet, um einen Knoten zu löschen.

XML-Text generieren.

xml.etree.ElementTree als ET importieren

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) #Dokumentobjekt generieren

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

ET.dump(new_xml) #Drucken Sie das generierte Format

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in XML der Python-Serialisierungsfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn