6 Stimmen

Nur Rückgabe des Textes von Elementen in xpath (Python / lxml)

Ich habe eine XML-Struktur wie diese:

mytree = """
<path>
    <to>
        <nodes>
            <info>1</info>
            <info>2</info>
            <info>3</info>
        </nodes>
    </to>
</path>
"""

Ich bin derzeit mit xpath in Python lxml, um die Knoten zu greifen:

>>> from lxml import etree   
>>> info = etree.XML(mytree)   
>>> print info.xpath("/path/to/nodes/info")
[<Element info at 0x15af620>, <Element info at 0x15af940>, <Element info at 0x15af850>]  
>>> for x in info.xpath("/path/to/nodes/info"):
            print x.text

1
2
3

Das ist großartig, aber gibt es einen saubereren Weg, um die nur die internen Texte als Liste, anstatt die for-Schleife nachträglich zu schreiben?
Etwa so:

print info.xpath("/path/to/nodes/info/text")

(aber das funktioniert nicht)

16voto

kev Punkte 145226

Sie können verwenden:

print info.xpath("/path/to/nodes/info/text()")

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X