我想要获得父<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做到这一点?我想要解决方案适用于上述两个条件。
答案 0 :(得分:2)
puts doc.at_xpath("//p[//a[@name='TOPIC']]").inner_text.strip
#=> "Exapmles"
解码,这说:
//p
- 在文档中的任意位置找到p
元素
[…]
- 符合此条件//a
- 它有一个a
元素作为后代
[@name='TOPIC']
- name
属性,其值为TOPIC
。