如何提取不属于子节点的文本?
How do I extract text that is not also part of a child node?
我正在使用 Ruby 2.4 和 Nokogiri。如何从不属于另一个子元素的节点中提取文本?也就是说,如果我有一个节点
<a>Text 1<b>Text 2</b></a>
我想提取 "Text 1" 而不是 "Text 2"。如果节点是
<c>Hello</c>
我可以直接打电话
node.text
但 "node.text" 不适用于我上面描述的更复杂的情况(它将 return "Text 1" 和 "Text 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
我正在使用 Ruby 2.4 和 Nokogiri。如何从不属于另一个子元素的节点中提取文本?也就是说,如果我有一个节点
<a>Text 1<b>Text 2</b></a>
我想提取 "Text 1" 而不是 "Text 2"。如果节点是
<c>Hello</c>
我可以直接打电话
node.text
但 "node.text" 不适用于我上面描述的更复杂的情况(它将 return "Text 1" 和 "Text 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