Просто возвращает текст элементов в xpath (python / lxml) - PullRequest
3 голосов
/ 05 марта 2012

У меня есть такая структура XML:

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

В настоящее время я использую xpath в Python lxml для захвата узлов:

>>> 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

Это здорово, но есть ли более чистый способ получить просто внутренних текстов в виде списка, вместо того, чтобы потом писать цикл for?
Что-то вроде:

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

(но это не работает)

1 Ответ

8 голосов
/ 05 марта 2012

Вы можете использовать:

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