【发布时间】:2016-11-15 04:09:02
【问题描述】:
我有一个包含文本'The f'的节点:
<w:r w:rsidR="00BC78BF">
<w:t>e takes out his phone and calls a friend.</w:t>
</w:r>
<w:r w:rsidR="00CB49B6">
<w:t xml:space="preserve"/>
</w:r>
<w:ins w:author="Mitchell Gould" w:date="2016-11-14T14:23:00Z" w:id="8">
<w:r w:rsidR="00BC7F15">
<w:t>The f</w:t>
</w:r>
</w:ins>
我想获取该文本节点之前存在的第一次出现的文本。
我尝试使用:
node.previous_element.text
=> " "
和
previous_node = node.xpath('preceding-sibling::w:r').last
=> " "
这是因为有时previous_element 只是一个空格,如上所示,并且可能有许多这些元素只是空格。
如何获取包含文本的第一个优先兄弟?
【问题讨论】:
-
您希望收到什么? “e拿出手机给朋友打电话。”? 在代码中你尝试过什么?
-
我更新了我的问题以显示我尝试过的内容。是的,我想要“e 拿出手机给朋友打电话。”
-
获取
w:t节点的集合并向后迭代它一步以检索先前的w:t元素。或者使用递归previous_element除非它的text属性不为空。 -
我希望有一种方法可以使用 Nokogiri 的一些更复杂的搜索参数来做到这一点