Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Einführung in XML der Python-Serialisierungsfunktion
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!