我正在尝试编写两个xpath查询,以便从2个div中分别获取2位信息。问题是,我似乎只是将它们放在一起。
我尝试过各种变体:
//a[@data-role='sku']/img/@title
这将返回“orange”和“pink”
但我想要的是2个单独的查询,例如:
//a[@data-role='sku']/img/@title[1] - orange
//a[@data-role='sku']/img/@title[2] - pink
以下代码:
<ul id="j-sku-list-1" class="sku-attr-list util-clearfix" data-sku-prop-id="14" data-isselect="true">
<li class="item-sku-image"><a data-role="sku" data-sku-id="350852" id="sku-1-350852" title="orange" href="javascript:;" class=""><img src="https://ae01.alicdn.com/kf/HTB1GIlhkL6H8KJjy0Fjq6yXepXa3/Ahagaga-2018-Spring-Summer-Rompers-Woman-Jumpsuits-Fashion-Floral-Print-Loose-Sexy-Women-Playsuits-Regular-Casual.jpg_50x50.jpg" title="orange" bigpic="https://ae01.alicdn.com/kf/HTB1GIlhkL6H8KJjy0Fjq6yXepXa3/Ahagaga-2018-Spring-Summer-Rompers-Woman-Jumpsuits-Fashion-Floral-Print-Loose-Sexy-Women-Playsuits-Regular-Casual.jpg_640x640.jpg"></a></li>
<li class="item-sku-image active"><a data-role="sku" data-sku-id="1052" id="sku-1-1052" title="pink" href="javascript:;" class=""><img src="https://ae01.alicdn.com/kf/HTB1D916jkfb_uJjSsrbq6z6bVXaT/Ahagaga-2018-Spring-Summer-Rompers-Woman-Jumpsuits-Fashion-Floral-Print-Loose-Sexy-Women-Playsuits-Regular-Casual.jpg_50x50.jpg" title="pink" bigpic="https://ae01.alicdn.com/kf/HTB1D916jkfb_uJjSsrbq6z6bVXaT/Ahagaga-2018-Spring-Summer-Rompers-Woman-Jumpsuits-Fashion-Floral-Print-Loose-Sexy-Women-Playsuits-Regular-Casual.jpg_640x640.jpg"></a></li>
</ul>
答案 0 :(得分:1)
索引元素,包含图像,而不是标题:
//a[@data-role='sku'][1]/img/@title
//a[@data-role='sku'][2]/img/@title
或者头衔,但是在所有标题中都有:
(//a[@data-role='sku']/img/@title)[1]
(//a[@data-role='sku']/img/@title)[2]
您的查询//a[@data-role='sku']/img/@title[2]
无效,因为它会搜索具有第二个标题的图片,但我想您的所有图片只有1个标题,
答案 1 :(得分:0)
您还没有向我们展示源文档,所以我们稍微猜测一下,但我怀疑它应该是
(//a[@data-role='sku']/img)[1]/@title
(//a[@data-role='sku']/img)[2]/@title
请记住,下标比#34; /&#34;更紧密地绑定,因此a/b/c[1]
表示选择每个a/b/c
,其中c是相应b
的第一个孩子;如果您想要第一个a/b/c
,则需要(a/b/c)[1]
。
这意味着在[1]
之后立即放置@title
(或任何其他下标)是没有意义的,因为不能选择多个@title
。