lxml(xml python 解析器)转到下一个元素

问题描述 投票:0回答:1

有人知道如何跳转到xml中的下一个元素吗?即

<xml>
<node></node>
<text number="2">Text number 2</text>
<text number="3">Text number 3</text>
...
<text number="N">Text number N</text>
...
<node></node>
</xml>

我希望能够跳转到数字 3 的元素,然后向前迭代几次。

element2 = xpath('//text[@number="2"]')
element3 = element2.nextElement()
returns <text number="3">Text number 3</text>
element4 = element3.nextElement() ...

我知道我可以找到所有具有“number”属性的元素,然后迭代它们,但对我来说重要的是能够从选定的元素(之后的元素)开始转到下一个元素 - 示例只是简化了

谢谢:)

python xml lxml
1个回答
0
投票

工作示例是一种很好的探索方式。

xpath
为您提供与您的查询匹配的元素列表。其中一个元素上的
help
会告诉您您想知道的内容。

>>> import lxml.etree
>>> root=lxml.etree.fromstring("""<xml>
... <node></node>
... <text number="2">Text number 2</text>
... <text number="3">Text number 3</text>
... ...
... <text number="N">Text number N</text>
... ...
... <node></node>
... </xml>""")
>>> elements=root.xpath('//text[@number="2"]')
>>> elements
[<Element text at 0x7fdd45d04d88>]
>>> help(elements[0])

...

 |  getnext(...)
 |      getnext(self)
 |      
 |      Returns the following sibling of this element or None.

...
© www.soinside.com 2019 - 2024. All rights reserved.