我有結構的XML文件,如下所示:XPath和LXML語法
<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
?
對不起,如果有什麼不清楚,我盡我所能解釋這個問題。
Ohhhhhhh!有用!非常感謝。非常愚蠢的我。 我的方法是獲取'y'標籤的數量還是有一個較短的版本? – user225312 2010-07-04 20:38:02
PulpFiction:它發生了:)我已經用簡單的方式更新了答案,如何更簡單地做到這一點 – mykhal 2010-07-04 20:42:38
mykhal:謝謝你的幫助,你爲我節省了很多辛苦。祝你有美好的一天! :) – user225312 2010-07-04 20:48:35