可能だと思いますが、構文がわかりませんでした。このようなもの:
xmlNode.SelectNodes("//*[count(child::*) <= 1]")
しかし、これは正しくありません。
可能だと思いますが、構文がわかりませんでした。このようなもの:
xmlNode.SelectNodes("//*[count(child::*) <= 1]")
しかし、これは正しくありません。
使用:
//node()[not(node())]
要素のリーフノードのみが必要な場合(そしてこれを明確にする必要があります-要素以外の子を持つ要素はリーフノードと見なされますか?)、次のXPath式でそれらが選択されます。
//*[not(*)]
上記の両方の式は、おそらく、目的のノード(any-nodeまたはelement-leafノードのいずれか)を選択する最短の式です。
要素の子がない要素
//*[not(child::*)]
なぜ1以下なのか?
xmlNode.SelectNodes("//*[count(child::*) = 0]")
このサイトでテストなどを行うhttp://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm
かなり役に立ちました..
グーグルのフロントマッチにはそのような解決策がないように思われるので、私はこのXSLTの答えを追加しています:
CDATAをXMLとして抽出するのに長い間苦労した後、最終的に、この式は私にとって最適に機能しました。
<xsl:template match="*[not(child::*)]/text()">