Xpath, используйте два запроса, чтобы вернуть два куска информации вместо обоих - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь написать два запроса xpath, чтобы получить 2 бита информации отдельно от 2 делений.Проблема в том, что я, кажется, собираю их обоих вместе.

Я пробовал варианты:

//a[@data-role='sku']/img/@title

Это возвращает "оранжевый" и "розовый"

Ното, что я хочу, это 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 голосов
/ 08 июня 2018

Вы не показали нам исходный документ, поэтому мы немного догадываемся, но я подозреваю, что это должно быть

(//a[@data-role='sku']/img)[1]/@title
(//a[@data-role='sku']/img)[2]/@title

Помните, что подписки связываются более плотно, чем "/", поэтому a/b/c[1]означает выбирать каждые a/b/c, где c - первый дочерний элемент соответствующего b;если вам нужен первый a/b/c в целом, вам нужно (a/b/c)[1].

Это означает, что не имеет смысла ставить [1] (или любой другой индекс) сразу после @title, потому что не может быть большечем один @title выбран.

0 голосов
/ 07 июня 2018

Элементы индекса, содержащие изображения, а не заголовки:

//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 заголовок, я полагаю)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...