子のテキストを選択せずにノードのテキストを取得するにはどうすればよいですか?
<div id="comment">
<div class="title">Editor's Description</div>
<div class="changed">Last updated: </div>
<br class="clear">
Lorem ipsum dolor sit amet.
</div>
つまり、Lorem ipsum dolor sit amet.
のではなく Editor's DescriptionLast updated: Lorem ipsum dolor sit amet.
提供されたXMLドキュメント:
<div id="comment">
<div class="title">Editor's Description</div>
<div class="changed">Last updated: </div>
<br class="clear">
Lorem ipsum dolor sit amet.
</div>
一番上の要素/div
には、テキストノードである4つの子ノードがあります。これら4つのうちの最初の3つtext-node
子供たちは whitespace-only
。これらの最後の4 text-node
子供たちが欲しがるものです。
使用:
/div/text()[last()]
これとは異なります:
/div/text()
後者は(whitespace-only
ノードはXMLパーサーによって保持されます)4つのテキストノードすべてを選択しますが、最後のノードのみが必要です。
代替案は(正確にわからない場合はtext-node
希望):
/div/text()[normalize-space()]
これにより、すべてのtext-node-children
//div
でないwhitespace-only
テキストノード。
_.
_の代わりにtext()
を選択するだけです:
_div/text()
_
指定されたXMLフラグメントで、これは次を返します:
_Lorem ipsum dolor sit amet.
_
これはどう :$doc/node()[3]/text()
$ docにXMLがあると仮定します。