在XPath我怎樣才能找到哪個數(取決於,0或1,在開始,Ç是2或3個)例如產品Ç在下面的列表:查找列表中的節點的數目(位置)
<ol>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
</ol>
在XPath我怎樣才能找到哪個數(取決於,0或1,在開始,Ç是2或3個)例如產品Ç在下面的列表:查找列表中的節點的數目(位置)
<ol>
<li>a</li>
<li>b</li>
<li>c</li>
<li>d</li>
</ol>
您可以使用XPath和count the preceding li
siblings:
count(//ol/li[. = 'c']/preceding-sibling::*)
演示(使用lxml.etree
):
>>> from lxml import etree as ET
>>> data = """
... <ol>
... <li>a</li>
... <li>b</li>
... <li>c</li>
... <li>d</li>
... </ol>
... """
>>> tree = ET.fromstring(data)
>>> value = "c"
>>> int(tree.xpath("count(//ol/li[. = '%s']/preceding-sibling::li)" % value))
2
http://stackoverflow.com/questions/226405/find-position-of-a-node-using-xpath – SIslam