3

我想在所有 XHTML 段落的末尾修剪尾随空格。我将 Ruby 与 REXML 库一起使用。

假设我在一个有效的 XHTML 文件中有以下内容:

<p>hello <span>world</span> a </p>
<p>Hi there </p>
<p>The End </p>

我想结束这个:

<p>hello <span>world</span> a</p>
<p>Hi there</p>
<p>The End</p>

所以我想我可以使用 XPath 来获取我想要的文本节点,然后修剪文本,这样我就可以得到我想要的(以前的)。

我从以下 XPath 开始:

//root/p/child::text()

当然,这里的问题是它返回的所有文本节点都是所有 p-tag 的子节点。这是:

'hello '
' a '
'Hi there '
'The End '

尝试下面的 XPath 会给我最后一段的最后一个文本节点,而不是每个段落的最后一个文本节点,它是根节点的子节点。

//root/p/child::text()[last()]

这只会返回:'The End '

因此,我想从 XPath 得到的是:

' a '
'Hi there '
'The End '

我可以用 XPath 做到这一点吗?或者我应该考虑使用正则表达式(这可能比 XPath 更令人头疼)?

4

2 回答 2

7

你的例子对我有用

//p/child::text()[last()]
于 2008-11-03T04:07:28.307 回答
1

万一你不知道,XSL 有一个normalize-space()函数可以去掉前导和尾随空格。

于 2008-11-03T06:27:33.483 回答