2013-10-30 50 views
1

我有這樣的xml;如何統計有兩個孩子的元素?

<A Ref=""blah"" Completed=""Y"" ErrorCount=""0""> 
     <B Type=""Output""> 
      <C> 
       <D Val=""02"" /> 
       <E Val=""05"" /> 
      </C> 
      <C> 
       <D Val=""02"" /> 
       <F Val=""05"" /> 
      </C>    
     </B > 
</A> 

我想要計算具有D和E子元素的'C'元素的數量。所以在這種情況下,將1(作爲第二個C具有d & F)

我可以用

<xsl:value-of select="count(B/C/child::D"/> 

得到計數,但我看不出如何指定C必須有孩子E也是如此。

我試圖

<xsl:value-of select="count(B/C/child::D and B/C/child::E"/> 

,但它不喜歡它

回答

3

使用謂語:

<xsl:value-of select="count(B/C[D and E])"/> 

方括號表達穿上選擇的節點集的約束,還等什麼這就是說找到當前節點的所有B元素子元素,然後爲每個元素找到它們的C元素子元素,但過濾該列表只包含那些自己至少有一個D元素的元素d一個E孩子。

+0

謝謝,只是想辦法弄明白! –

相關問題