【问题标题】:Search for text nodes in Nokogiri在 Nokogiri 中搜索文本节点
【发布时间】:2014-09-10 07:02:08
【问题描述】:

我在文档片段上搜索文本节点。这有效,如下面的 sn-p 所示:

doc = Nokogiri::HTML::DocumentFragment.parse("<p>foo</p>") 
doc.xpath('.//text()')
=> [#<Nokogiri::XML::Text:0x3fe56c8c02a8 "foo">]

但是,我的根节点可能没有像&lt;p&gt; 这样的标签,它可能是像"foo" 这样的简单字符串。那么这个查询就失败了。

doc = Nokogiri::HTML::DocumentFragment.parse("foo") 
doc.xpath('.//text()')
=> []

将查询更改为doc.xpath('text()') 即可解决问题。

是否有结合这两种行为的查询?

【问题讨论】:

  • 也许 "//p[text()='foo']" ?
  • foo 不是基于您的示例的标签。
  • 备注:字符串不固定,外层标签也不固定。我只想找到所有子节点中的所有文本节点。
  • 您要查找除foo以外的文本节点吗?
  • 我想找到所有个文本节点,不管它的名字。

标签: xpath nokogiri


【解决方案1】:

我没有使用 Nokogiri,但是在标准 XPath 中,你应该可以只使用联合运算符:

doc.xpath('.//text() | text()')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多