2011-02-01 53 views
2

使用XSLT,我正在處理一個xml文件,該文件可能沒有任何節點,而不是root。我想在這個案例的html頁面上輸出一個特殊的消息。我正在使用for-each元素來處理xml文件。如何檢查xml文件中是否有實際節點?如何檢查XML文件是否具有除根以外的任何節點?

+0

好問題,+1。請參閱我的答案以獲取解釋和幾個XPath表達式,以選擇您可能想要的內容。 :) – 2011-02-01 19:29:37

回答

4

如何檢查XML文件是否沒有 節點?

根據定義,任何格式良好的XML文檔至少包含一個top元素。

因此,任何XML文檔都包含一些節點 - 不能有沒有節點的XML文檔。

我明白這個問題的要求:「如何確定XML文檔的頂層元素沒有後代?」

這實際上是一個XPath問題。此XPath表達式:

/*[not(node())] 

true()恰好當文檔的頂部元件沒有子節點(元素,文本節點,處理指令或註釋)。

頂層元素仍然可以具有屬性,並且它始終具有名稱空間節點,但這兩種節點不被視爲完全「子」。

/*[not(node()) and not(@*)] 

true()正好在頂部元素沒有子節點和沒有屬性時。

/*[not(*)] 

true()什麼時候頂部元素沒有子元素節點(但它仍然可以有文字子節點,處理指令兒童和評論節點的孩子)。

+0

+1的正確答案。 – Flack 2011-02-01 19:34:48

相關問題