xpath:从节点提取数据

xpath:从节点提取数据,xpath,web-crawler,xpathnavigator,Xpath,Web Crawler,Xpathnavigator,我正在尝试从网页中添加一些数据。该网页的结构如下所示 <li id="yui_3_4_1_1_1326860702769_9706"> <span id="yui_3_4_1_1_1326860702769_9705">Sales rank: </span> 2 </li> 销售排名: 2. 我需要从上面提取值“2”,标识符必须是“Sales rank” 谢谢您的帮助。您可以尝试使用: //div[@class="product-deta

我正在尝试从网页中添加一些数据。该网页的结构如下所示

<li id="yui_3_4_1_1_1326860702769_9706">
<span id="yui_3_4_1_1_1326860702769_9705">Sales rank: </span>
2
</li>
  • 销售排名: 2.
  • 我需要从上面提取值“2”,标识符必须是“Sales rank”

    谢谢您的帮助。

    您可以尝试使用:

    //div[@class="product-details"]/ul/li[9]
    
    但未测试。

    尝试以下方法:

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

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

    这将选择字符串值为“Sales rank:”的任何
    span
    元素的以下第一个同级文本节点,即
    li
    元素的子元素,其
    id
    属性的值为
    'yui_3_4_1_1_1326860702769_9706'
    ,请尝试此操作,如果有任何问题,请告诉我

    `//li[@id]/*[contains(text(), 'Sales rank')]/following-sibling::node()[1]`
    

    这将选择多个节点--请注意仅限空格的文本节点。此操作如下:查询(//后代::*[@class='product-details box']/ul/li[span='Sales rank:']/text()”->item(0)->nodeValue;谢谢你,迪米特。但是,“yui_3_4_1_1_1326860702769_9706”是为这些节动态生成的数字,因此不能使用它。问题是它并不总是第9个元素:)