我相信這是可能的,但無法弄清楚語法。像這樣:如何使用XPath表達式選擇所有葉節點?
xmlNode.SelectNodes("//*[count(child::*) <= 1]")
但這是不正確的。
我相信這是可能的,但無法弄清楚語法。像這樣:如何使用XPath表達式選擇所有葉節點?
xmlNode.SelectNodes("//*[count(child::*) <= 1]")
但這是不正確的。
使用:
//node()[not(node())]
在情況下,只有元素葉節點想(這需要澄清 - 是有考慮的葉節點無子元素元素?),那麼下面的XPath表達式選擇其中:上述
//*[not(*)]
兩個表達式都是可能是選擇所需的最短節點(任何節點或元素 - 葉節點)。
爲什麼少或等於 1?
xmlNode.SelectNodes("//*[count(child::*) = 0]")
使測試等在這個網站http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm
非常有益的..
我加入這個XSLT的答案,因爲它的所有元素似乎谷歌的前場比賽缺少這樣的解決方案:
與提取CDATA作爲XML經過長期鬥爭,最終,這個表達式的工作最適合我:
<xsl:template match="*[not(child::*)]/text()">
問得好,+1。請參閱我的答案,瞭解可能最短的XPath表達式,它可以精確選擇所有葉節點。 :) – 2010-10-13 18:18:19