css - 如何提取不属于子节点的文本?

标签 css ruby xpath text nokogiri

我正在使用 Ruby 2.4 和 Nokogiri。如何从不属于另一个子元素的节点中提取文本?也就是说,如果我有一个节点

<a>Text 1<b>Text 2</b></a>

我想提取“文本 1”而不是“文本 2”。如果节点是

<c>Hello</c>

我可以简单地调用

node.text

但是“node.text”不适用于我上面描述的更复杂的情况(它将返回“Text 1”和“Text 2”。

最佳答案

您可以使用 Nokogiri 的 xpath 选择器来仅获取父元素的文本:

doc = Nokogiri::HTML("<a>Text 1<b>Text 2</b></a>")
doc.xpath("//a/text()").text
# => "Text 1"

关于css - 如何提取不属于子节点的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46649947/

相关文章:

css - 为什么 HTML 链接不能在透明边框的 div 中工作?

php - 我可以使用XPath或诸如正则表达式之类的东西从XML中提取数据吗?

css - <UL> 显示不正确 - 在除 Firefox 2 之外的所有浏览器中工作正常(包括屏幕截图)

html - 根据浏览器显示不同的颜色

ruby - 附加到 Chef 数组属性

ruby - 将数字日期转换为Fluentd中的字符串日期字段以存储到Elasticsearch中

ruby - 为什么 Bundler.require 加载错误路径?

xml - XPath 选择具有属性名称的节点

XSLT/XPath : No upper-case function in MSXML 4. 0?

css - 在我的 CSS 媒体查询中,一个特定的选择器没有被识别