Nokogiri:当你拥有所有元素的字符串索引时,你如何获得DOM元素的父节点?

时间:2011-12-09 15:39:40

标签: html ruby dom xpath nokogiri

这就是我所拥有的:

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

就我而言:

doc = Nokogiri::HTML(content.body)

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

我正在使用Ruby 1.8.7和rails 2.3.8

1 个答案:

答案 0 :(得分:0)

XML文档的特定序列化中的索引与元素之间没有相关性。你可以做的最近:

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

不幸的是,这不能保证工作,因为:

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

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

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