У меня есть XML-файл со структурой, показанной ниже:
<x>
<y/>
<y/>
.
.
</x>
Количество тегов <y>
является произвольным.
Я хочу получить текст тегов <y>
, и для этого я решил использовать XPath.Я выяснил синтаксис, скажем, для первого y
: (Предположим, root
как x
)
textFirst = root.xpath('y[1]/text()')
Это работает, как и ожидалось.
Однако моя проблема в том, что я заранее не узнаю количество тегов <y>
, поэтому, чтобы это исправить, я сделал следующее:
>>> count = 0
>>> for number in root.getiterator('y'):
... count += 1
Итак, теперь я знаю, что число count
y
в x
.(Есть ли лучший способ получить количество тегов? Если да, пожалуйста, предложите)
Однако, если я сделаю это:
>>> def try_it(x):
... return root.xpath('y[x]/text()')
...
>>> try_it(1)
[]
Возвращается пустой список.
Итак, мой вопрос: не зная произвольного числа тегов, как мне получить синтаксис XPath или выражение для него и использовать lxml
?
Извините, если что-то не понятно, я старался изо всех силобъяснить проблему.