【发布时间】:2010-07-04 20:27:30
【问题描述】:
我有一个结构如下所示的 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
所以现在我知道x 中有count 的数量y。 (有没有更好的获取标签数量的方法?如果有,请建议)
但是,如果我这样做:
>>> def try_it(x):
... return root.xpath('y[x]/text()')
...
>>> try_it(1)
[]
它返回一个空列表。
所以我的问题是:不知道任意数量的标签,我如何获得它的 XPath 语法或表达式并使用lxml?
抱歉,如果有什么不清楚的地方,我已尽力解释问题。
【问题讨论】: