Text aus XML in Python erhalten

from xml.dom.minidom import parseString dom = parseString(data) data = dom.getElementsByTagName('data') 

Die Variable "data" kehrt als Elementobjekt zurück, aber ich kann nicht für das Leben von mir in der Dokumentation sehen, um den Textwert des Elements zu greifen.

Beispielsweise:

  • Html-Tag-Wert in Python erhalten
  • Python CSV Reader Row als Liste zurückgeben
  • Parsing ungültiges Anker-Tag mit BeautifulSoup oder Regex
  • Python: Injizieren von HTML-Inhalten in ein Tag mit `lxml.html`
  • Python (Neuling) Parse XML aus API-Aufruf
  • Filtern von Verzeichnissen beim Analysieren von cpp-Dateien in get-includes in pythonbindungen / clang
  •  <something><data>I WANT THIS</data></something> 

    Wer hat irgendwelche Ideen?

  • Wie man die Ausgabe des Teilprozesses in Python 2.7 versteckt
  • 2 Solutions collect form web for “Text aus XML in Python erhalten”

    Das sollte der Trick machen:

     dom = parseString('<something><data>I WANT THIS</data></something>') data = dom.getElementsByTagName('data')[0].childNodes[0].data 

    Dh du musst tiefer in die DOM-Struktur wechseln, um am Textkindknoten zu kommen und dann auf seinen Wert zuzugreifen.

    Also der Weg, um es zu betrachten ist, dass "I WANT THIS" ist eigentlich ein weiterer Knoten. Es ist ein Textkind von "Daten".

     from xml.dom.minidom import parseString dom = parseString(data) nodes = dom.getElementsByTagName('data') 

    An diesem Punkt ist "nodes" ein NodeList und in deinem Beispiel hat es ein Element, welches das "data" Element ist. Entsprechend hat das "data" -Element auch nur ein Kind, das ein Textknoten "I WANT THIS" ist.

    So könntest du einfach so etwas machen:

     print nodes[0].firstChild.nodeValue 

    Beachten Sie, dass in dem Fall, in dem Sie mehr als ein Tag namens "Daten" in Ihrer Eingabe haben, sollten Sie eine Art von Iteration Technik auf "Knoten" verwenden, anstatt es direkt zu indizieren.

    Python ist die beste Programmiersprache der Welt.