我正在使用Ruby 2.4和Nokogiri。 如何从不属于另一个子元素的节点中提取文本? 也就是说,如果我有一个节点
<a>Text 1<b>Text 2</b></a>
我想提取"文本 1"而不是"文本 2"。 如果节点是
<c>Hello</c>
我可以简单地打电话
node.text
但是"node.text"不适用于我上面描述的更复杂的情况(它将同时返回"文本 1"和"文本 2"。
您可以使用 Nokogiri 的xpath
选择器仅获取父元素的文本:
doc = Nokogiri::HTML("<a>Text 1<b>Text 2</b></a>")
doc.xpath("//a/text()").text
# => "Text 1"
你可以执行以下操作:
doc.at('a').child.text
或
doc.at('a').children[0].text