これを行うにはどのようにして、我々は特定の属性を選択すると、時々、同時に複数のノードに一致するかもしれないが、我々はこのような第二のノードとしてこれらのノードの1、または最後のノードをしたいですか?
この場合、ブラケットは、例えば、ノード固有の順序の指標を得る方法で渡すことができます。
from lxml import etree
text = '''
<div>
<ul>
<li class="item-0"><a href="https://ask.hellobi.com/link1.html">first item</a></li>
<li class="item-1"><a href="https://ask.hellobi.com/link2.html">second item</a></li>
<li class="item-inactive"><a href="https://ask.hellobi.com/link3.html">third item</a></li>
<li class="item-1"><a href="https://ask.hellobi.com/link4.html">fourth item</a></li>
<li class="item-0"><a href="https://ask.hellobi.com/link5.html">fifth item</a>
</ul>
</div>
'''
html = etree.HTML(text)
result = html.xpath('//li[1]/a/text()')
print(result)
result = html.xpath('//li[last()]/a/text()')
print(result)
result = html.xpath('//li[position()<3]/a/text()')
print(result)
result = html.xpath('//li[last()-2]/a/text()')
print(result)
我々は最初のliノードを選択する最初の選択肢は、括弧1で、着信番号があること、およびコードが異なる場合に注意を払うことができ、第1号は当初、ないゼロの始まりです。
我々はノードに戻ります)(前回渡さ括弧内に、最後のliノードを選択する2番目の選択肢は、最後の李です。
我々はそれが、位置番号1とノード2の結果であり、第3ノードのLi選択された位置が3未満である選択された、2つのノードのLiの前に得られます。
第四の選択肢は、我々が通過括弧内に第三の最後のLiノードを選択し、最後の() - )(最後の最後のものであるので、図2に示すように、最後の()とすることができる - 図2は、最後の3です。
結果は以下の通りであります:
['first item']
['fifth item']
['first item', 'second item']
['third item']
ここでは、最後の()、位置()関数を使用して、XPathの100は、アクセス処理機能、数値、文字列、論理ノード、及び配列を含む、複数の機能を等が設けられています。
特定の参照は、すべての機能に影響を与えることができる:http://www.w3school.com.cn/xpath/xpath_functions.asp。