3

すべてのXHTML段落の最後にある末尾の空白を削除したいと思います。REXMLライブラリでRubyを使用しています。

有効な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タグの子であるすべてのテキストノードを返すことです。これはどれですか:

'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 に答える