質問

私はそれが可能だと信じていますが、構文を理解できませんでした。このようなもの:

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

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

役に立ちましたか?

解決

使用する:

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

場合にのみ エレメント 葉のノードは必要です(そしてこれには明確化が必要です - 非エレメントの子供が葉のノードと見なされる要素ですか?)、次のXPath式がそれらを選択します。

//*[not(*)]

上記の両方の表現は、おそらく最短です 目的のノード(任意のノードまたは要素 - 葉のノードのいずれか)を選択します。

他のヒント

要素の子供がない要素

//*[not(child::*)]

なぜそれ以下 または等しい 1に?

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

このサイトでテストなどを行います http://www.whitebeam.org/library/guide/technotes/xpathtestbed.rhtm

かなり役に立ちます。

Googleのフロントマッチにはそのような解決策がないようだからです。

XMLとしてCDATAを抽出することとの長い闘争の後、最終的に、この表現は私にとって最もよく機能しました。

<xsl:template match="*[not(child::*)]/text()">
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top