XPathの順次選択

これを行うにはどのようにして、我々は特定の属性を選択すると、時々、同時に複数のノードに一致するかもしれないが、我々はこのような第二のノードとしてこれらのノードの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

おすすめ

転載: www.cnblogs.com/hankleo/p/11227266.html