2017-03-22 5 views
0

Ich versuche, die Textdaten eines Element-Tags in XML zu erhalten.Elementdaten aus XML-Datei abrufen?

Meine XML-Datei ist:

<root> 

<subroot> 

<child1/> 
<child2/> 
Data of subroot 

</subroot> 

<root> 

ich folgende Python-Code geschrieben, die Daten zu erhalten:

import xml.dom.minidom as m 

dom.m.parse("myXMLfile.xml") 
var=getElementsByTagName("subroot")[0] 
var_data=var.childNodes[0].data    # to get the data 

Aber dieser Code produziert Fehler: childNodes is not defined for element "var"

Wie kann ich Daten eines Elements, das mehrere leere Tags enthält?

Bitte schlagen Sie vor, welche Änderungen ich in meinem Programm vornehmen muss.

Antwort

0

Dadurch werden alle Elementdaten (einschließlich Multi-Line-Daten) erhalten:

import xml.dom.minidom as m 

dom = m.parse("myXMLfile.xml") 
var = dom.getElementsByTagName('subroot') 
elem_data = "".join(var_data.nodeValue.lstrip() for var_data in var[0].childNodes if var_data.nodeType == var_data.TEXT_NODE) 

print elem_data ## Data of subroot 

Die .lstrip() verwendet wird zusätzliche Leerräume in elem_data, die als Folge der Art und Weise wurde die XML-Datei formatiert wurde zu entfernen . Wenn Sie die Leerräume so anzeigen möchten, wie sie innerhalb des Elements <subroot> erscheinen, entfernen Sie .lstrip()