Versuch zum extrahieren von xml-element mit python 2.7

Ich versuche, zu extrahieren Sie die name-Elemente unter der Sequenz in xml-Dateien. Habe ich eingefügt in der Spitze eines xml-Beispielcode zu veranschaulichen. Mit dieser möchte ich, um den text vom 01 Interview_been erfolgreich durch Mentoring und schreiben es in eine Datei. Es gibt mehrere Sequenz-tags in der xml und ich versuche, herauszufinden, wie Sie gehen durch Sie und extrahieren Sie es. Ich habe versucht, herauszufinden, wie die Verwendung von xml.etree und xml.dom.minidom, aber ich kann nicht scheinen, um wrap meinem Gehirn herum. Ich war in der Lage, um alle id-Werte aus der Reihenfolge der tags, nicht aber die Namen der Elemente. Ich bin einfügen in meinen code ein, bevor Sie die xml-Datei.

from xml.etree import ElementTree


file = open("xmldump.txt", "r")
filedata = file.read()
file.close()

with open('test.xml', 'rt') as f:
    tree = ElementTree.parse(f)

for node in tree.iter('name'):
    sequenceid = node.attrib.get('name')
    print '  %s' % (sequenceid)
    newLine = sequenceid + "\n"
    file = open("xmldump.txt", "w")
    file.write(newLine)
    file.close()

Ist hier die XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xmeml>
<xmeml version="5">
<bin>
<uuid>0F5D72FA-54E4-4DE8-81D7-CC33F5C43836</uuid>
<updatebehavior>add</updatebehavior>
<name>Logged</name>
<children>
    <sequence id="01 Interview_been successful through mentorship">
        <uuid>12FB944D-83EA-4527-9A54-2130A42E3A06</uuid>
        <updatebehavior>add</updatebehavior>
        <name>01 Interview_been successful through mentorship</name>
        <duration>1195</duration>
        <rate>
            <ntsc>TRUE</ntsc>
            <timebase>24</timebase>
        </rate>
        <timecode>
  • Das ist nicht ein gültiges XML-Dokument. timecode , sequence usw. die Knoten werden geöffnet und nie geschlossen. Wenn Sie tatsächlich versuchen, zu analysieren, ein fragment, Sie können nicht mit einem DOM-parser (wie minidom oder ElementTree.parse), und Sie müssen eine iterative parser (wie ElementTree.iterparse) oder ein SAX-parser. Wenn Sie versuchen, zu analysieren, ein echtes Dokument, geben Sie uns bitte ein echtes Dokument.
  • Auch Sie versuchen, die name Attribut jedes name Knoten. Dein code tut, aber in deinem Beispiel XML, weder name Knoten hat eine name Attribut oder alle Attribute auf alle. Sind Sie versuchen, den inneren text des name Knoten? Oder... was? Und warum würden Sie das nennen, was auch immer es ist, du bist immer ein sequenceid?
  • Er sagte: "habe ich eingefügt in der Spitze eines xml-Beispielcode zu veranschaulichen". Ich denke, das ist nur eine partielle, seine Datei wahrscheinlich gültig ist xml
  • Es ist die OP, dafür zu sorgen, ein sscce, nicht unsere Aufgabe, zu erraten, was er bedeuten könnte. Vielleicht, dass die Stichprobe, gefolgt von 5 Schluss-tags veranschaulicht sein problem, aber Woher wissen wir, dass ohne raten und dann hoffen?
  • Ich Stimme vollkommen zu, dass es seine Verantwortung. Ich wurde nur darauf hingewiesen, dass er sagte, dies sei der "Anfang einer Probe", was wohl bedeutet, es ist ein Teil der Datei und er wählte ein unglücklicher Ort, um es zu schneiden.
  • OP, die Zeichenfolge "01 Interview_been erfolgreich durch Mentoring" wird zweimal in der Beispiel-XML-fragment, die Sie zur Verfügung gestellt; einmal, als der Wert id Attribut des sequence Knoten und einmal als text innerhalb der name Knoten. Dies macht es ein verwirrendes Beispiel. Welche diese sind, die Sie versuchen zu extrahieren? Bitte berücksichtigen Sie, dass mehr spezifische in Ihrem Frage-und vielleicht die Aktualisierung der Beispiel.

InformationsquelleAutor user2113339 | 2013-02-26
Schreibe einen Kommentar