2012-01-18 5 views
0

Я пытаюсь добавить некоторые данные с веб-страницы. структура веб-страницы, как показано нижеxpath: извлечь данные из узла

<li id="yui_3_4_1_1_1326860702769_9706"> 
<span id="yui_3_4_1_1_1326860702769_9705">Sales rank: </span> 
2 
</li> 

http://www.barnesandnoble.com/w/enders-game-orson-scott-card/1100353963?ean=9781429963930

Мне нужно извлечь значение «2» сверху и идентификатор должен быть «Оценка продаж»

Спасибо за помощь.

ответ

0

попробовать это:

//descendant::*[@class='product-details box']/ul/li[span='Sales rank: ']/text() 
+0

Это выбирает более одного узла - быть в курсе пробельных только текст узлы. –

+0

awesome this works: query ("// descendant :: * [@ class = 'product-details box']/ul/li [span = 'Sales rank:']/text()") -> item (0) -> nodeValue; – Abhi

+0

, пожалуйста, воздержитесь, если вы примете ответ. – Jayy

0

Вы можете попробовать использовать:

//div[@class="product-details"]/ul/li[9] 

Не тестировался, хотя.

+0

проблема в том, что это не всегда девятым элемент :) – Abhi

0

Использование:

//li[@id='yui_3_4_1_1_1326860702769_9706'] 
    /span[. = 'Sales rank: '] 
     /following-sibling::text()[1] 

Это выбирает текстовый узел первый следующий-родственный любого span элемента со значением строки 'Sales rank: ', что ребенок любого li элемент, у которого атрибут id имеет значение 'yui_3_4_1_1_1326860702769_9706'.

+0

спасибо Dimitre. однако «yui_3_4_1_1_1326860702769_9706» является динамически сгенерированным числом для этих разделов и, следовательно, не может его использовать. – Abhi

0

попробовать это, если любой вопрос, пожалуйста, дайте мне знать

`//li[@id]/*[contains(text(), 'Sales rank')]/following-sibling::node()[1]` 
Смежные вопросы