簡體   English   中英

如何使用Nokogiri獲取父母的文本

[英]How to get parent's text using Nokogiri

我遇到想要獲取父<p>標記文本的情況。 例如:

<p>
  <a name="TOPIC"></a>
  <b><font color="#800000" size="4" face="Arial">Exapmles</font></b>
</p>

對於此示例,這工作正常:

test = Nokogiri::HTML("row['test']"])
raw_attributes = test.root.css("p a").inject({}) do |accumulator, element| 
  accumulator[element.attr("name")] = (element.parent.text).strip
  accumulator
end

但不適用於以下示例:

<p>
  <font>
    <a name="TOPIC"></a>
    <b><font color="#800000" size="4" face="Arial">Exapmles</font></b>
  </font>
</p>

如何使用Nokogiri做到這一點? 我想要適用於以上兩個條件的解決方案。

puts doc.at_xpath("//p[//a[@name='TOPIC']]").inner_text.strip
#=> "Exapmles"

解碼后,它說:

  • //p —在文檔中的任何位置查找p元素
    • […] -符合此條件
    • //a —它有a元素作為后代
      • [@name='TOPIC'] -具有name屬性,其值為TOPIC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM