XPath поиск с ElementTree - PullRequest
       22

XPath поиск с ElementTree

4 голосов
/ 27 октября 2008

плохо знаком с xml. Ищем XPath для поиска XML-файла с питоном в формате ElementTree

<root>
<child>One</child>
<child>Two</child>
<child>Three</child>
</root>

чтобы найти ребенка с «двумя» и вернуть true / false

если он был запущен как

from elementtree import ElementTree
root = ElementTree.parse(open(PathFile)).getroot()

как этого достичь

Ответы [ 2 ]

1 голос
/ 13 ноября 2008

Когда вычисляется следующее выражение XPath:

boolean(/*/*[.='Two'])

результат равен true , если существует такой элемент (дочерний элемент верхнего элемента, для которого его строковое значение равно "Two"),

и false в противном случае.

Надеюсь, это помогло.

Приветствия

Димитр Новатчев

1 голос
/ 27 октября 2008

Я играл с ElementTree в последнее время, давайте посмотрим ..

>>> from xml.etree import ElementTree
>>> help(ElementTree.ElementPath)
>>> root = ElementTree.fromstring("""
<root><child>One</child><child>Two</child><child>Three</child></root>
""")
>>> ElementTree.ElementPath.findall(root, "child")
[<Element child at 2ac98c0>, <Element child at 2ac9638>, <Element child at 2ac9518>]
>>> elements = ElementTree.ElementPath.findall(root, "child")
>>> two = [x for x in elements if x.text == "Two"]
>>> two[0].text
'Two'

Это то, что вы ищете, верно? Это говорит, что ElementPath только что ограничил поддержку xpath, но это не говорит, что не поддерживает вообще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...