【问题标题】:Nokogiri: How do you get the parent node of a DOM element when all you have is the string index of the element you want in the dom?Nokogiri:当你所拥有的只是你想要在 dom 中的元素的字符串索引时,你如何获得 DOM 元素的父节点?
【发布时间】:2011-12-11 04:39:13
【问题描述】:

这是我所拥有的:

  • DOM 存储为文本
  • 我有我想要获取其父节点的区域的字符串索引,该索引可能是也可能不是标签的开头(它永远不会是标签的一部分,因为它是用户选择
  • 我在索引处也有 htmltext(显然)

据我所知:

doc = Nokogiri::HTML(content.body)

我知道 nokogiri 可以做 xpath 的事情,但我不知道 xpath 是否可以做标准的文本搜索?选择文本可以跨越多个节点,我认为这会破坏 xpath 搜索 o.o

我使用的是 Ruby 1.8.7 和 rails 2.3.8

【问题讨论】:

    标签: html ruby dom xpath nokogiri


    【解决方案1】:

    XML 文档的特定序列化中的索引与元素之间没有关联。你能做的最接近的:

    递归地,在 DOM 的每一层,序列化元素并查看它的长度(添加到您目前的长度)是否已达到您的索引。

    不幸的是,这并不能保证有效,因为:

    1. 描述同一 XML 文档的许多不同(非规范)序列化是可能的(例如 foo="You said, "Hi!""foo='You said, "Hi!"')。

    2. 根据您是否认为空白节点很重要,两个不同的 XML 文档可能会被视为相同(例如 <foo><bar><foo>\n\t<bar>

    3. 在 HTML 中,可能会去除额外的非重要空白(例如 <p>a b</p><p>a b</p>)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      相关资源
      最近更新 更多