すべての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よりも頭痛の種です)。