Die*_*ros 3 html ruby xhtml xpath rexml
我想在所有XHTML段落的末尾修剪尾随空格.我正在使用Ruby和REXML库.
假设我在有效的XHTML文件中有以下内容:
<p>hello <span>world</span> a </p>
<p>Hi there </p>
<p>The End </p>
Run Code Online (Sandbox Code Playgroud)
我想最终得到这个:
<p>hello <span>world</span> a</p>
<p>Hi there</p>
<p>The End</p>
Run Code Online (Sandbox Code Playgroud)
所以我在想我可以使用XPath来获取我想要的文本节点,然后修剪文本,这样我就可以得到我想要的东西了(之前的).
我从以下XPath开始:
//root/p/child::text()
Run Code Online (Sandbox Code Playgroud)
当然,这里的问题是它返回所有p标签的子节点的所有文本节点.这是:
'hello '
' a '
'Hi there '
'The End '
Run Code Online (Sandbox Code Playgroud)
尝试以下XPath为我提供了最后一个段落的最后一个文本节点,而不是每个段落的最后一个文本节点,它是根节点的子节点.
//root/p/child::text()[last()]
Run Code Online (Sandbox Code Playgroud)
这只会返回: 'The End '
因此,我想从XPath获得的是:
' a '
'Hi there '
'The End '
Run Code Online (Sandbox Code Playgroud)
我可以用XPath做到这一点吗?或者我应该考虑使用正则表达式(这可能比XPath更令人头疼)?