Html 使用Hpricot在其父节点内查找节点的字符索引

Html 使用Hpricot在其父节点内查找节点的字符索引,html,ruby-on-rails,parsing,hpricot,Html,Ruby On Rails,Parsing,Hpricot,假设我有以下HTML: html = Four score and seven <b>years ago</b> 查找节点: node = doc.at('b') 然后获取父节点中节点的字符索引: node.character_index => 22 我怎样才能做到这一点(即,我刚刚编写的character\u index()函数的真实版本是什么?我不认为Hpricot是这样工作的。下面是我根据您的示例所做的“node.inspect” node.inspec

假设我有以下HTML:

html = Four score and seven <b>years ago</b>
查找
节点:

node = doc.at('b')
然后获取父节点中
节点的字符索引:

node.character_index
=> 22

我怎样才能做到这一点(即,我刚刚编写的
character\u index()
函数的真实版本是什么?

我不认为Hpricot是这样工作的。下面是我根据您的示例所做的“node.inspect”

node.inspect
"{elem <b> \"years\" </b>}"
node.inspect
“{elem\'年\”“}”
所以,你所要求的在整个文本中的位置并不存在


但是,您可能希望使用索引进行的事情数量有限,您可以通过

来完成这些事情。我不认为Hpricot是这样工作的。下面是我根据您的示例所做的“node.inspect”

node.inspect
"{elem <b> \"years\" </b>}"
node.inspect
“{elem\'年\”“}”
所以,你所要求的在整个文本中的位置并不存在


但是,您可能希望使用索引进行的事情数量有限,您可以通过

来完成这些事情。另外,请参阅Ruby论坛主题:如果有人想查看链接,则会问同样的问题。相关要点:1)为什么在“字符位置在XML和HTMLDOM中毫无意义。空格可以更改字符位置而不会影响DOM”时这样做?2)使用libxml作为替代方法,因为“libxml存储每个元素的行号。因此,您可以提取所有链接,检查它们,并为每个未通过检查的链接打印element.line_num。此外,请参阅Ruby论坛主题:希望检查链接的人会问同样的问题。相关要点:1)当“字符位置在XML和HTML DOM中毫无意义”时,为什么要这样做。空白可以在不影响DOM的情况下改变字符位置”,2)使用libxml作为替代方法,因为“libxml存储每个元素的行号。因此,您可以提取所有链接,检查它们,并为每个未通过检查的链接打印element.line_num“