【问题标题】:XPath find tag contains and then get the span tag belowXPath find tag contains 然后得到下面的span tag
【发布时间】:2015-01-09 14:17:41
【问题描述】:

我是 XPath 新手,不知道如何在此 HTML 代码中获取 <span> 标记。

我正在使用标签包含功能。我匹配了正确的标签,但我不知道如何获取<em> 下方的<span> 标签以便获取日期:

//em[contains(text(), "Datum för upprättande:")]


<li class="clear">
  <em class="">Datum för upprättande:</em>
  <span class="">19-11-2008</span>
</li>

【问题讨论】:

    标签: ruby xpath nokogiri


    【解决方案1】:

    您可以使用following-sibling

    //em[contains(text(), "Datum för upprättande:")]/following-sibling::span
    

    【讨论】:

    • 非常感谢您。 following-sibling::span,所以如果 li 标签应该有 em、span 和地址,我可以将 following-sibling::span 更改为 following-sibling::address,因为它们 em 和 span 和 address 是兄弟姐妹,对吗?
    【解决方案2】:

    正如你指定的 Nokogiri:

    require 'nokogiri'
    
    html = '<li class="clear">
    <em class="">Datum för upprättande:</em>
    <span class="">19-11-2008</span>                                                                                                                                                     
    </li>'  
    
    doc = Nokogiri::HTML(html)                                                                                                                                                           
    em = doc.xpath('//em[contains(text(), "Datum för upprättande:")]')                                                                                                                   
    puts em[0].next_element.content # => 19-11-2008
    

    【讨论】:

    • 这很有趣。谢谢
    • 使用atat_xpath,您不必使用em[0]em 本身就可以工作,因为它只包含一个节点,而不是一个 NodeSet。
    猜你喜欢
    • 1970-01-01
    • 2016-07-11
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    相关资源
    最近更新 更多