49

可能だと思いますが、構文がわかりませんでした。このようなもの:

xmlNode.SelectNodes("//*[count(child::*) <= 1]")

しかし、これは正しくありません。

4

4 に答える 4

63

使用

//node()[not(node())]

要素のリーフノードのみが必要な場合(そしてこれを明確にする必要があります-要素以外の子を持つ要素はリーフノードと見なされますか?)、次のXPath式でそれらが選択されます。

//*[not(*)]

上記の両方の式は、おそらく、目的のノード(any-nodeまたはelement-leafノードのいずれか)を選択する最短の式です。

于 2010-10-13T18:16:56.960 に答える
30

要素の子がない要素

//*[not(child::*)]
于 2010-10-13T18:26:17.633 に答える
2

なぜ1以下のか?

xmlNode.SelectNodes("//*[count(child::*) = 0]")

このサイトでテストなどを行うhttp://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm

かなり役に立ちました..

于 2010-10-13T18:17:39.037 に答える
0

グーグルのフロントマッチにはそのような解決策がないように思われるので、私はこのXSLTの答えを追加しています:

CDATAをXMLとして抽出するのに長い間苦労した後、最終的に、この式は私にとって最適に機能しました。

<xsl:template match="*[not(child::*)]/text()">
于 2017-12-05T15:49:38.810 に答える