Xpath,使用两个查询返回两条信息而不是两条信息

时间:2018-06-07 14:26:44

标签: xpath

我正在尝试编写两个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>

2 个答案:

答案 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