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"/>

但它不喜欢它

4

1 回答 1

3

使用谓词:

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

方括号表达式对选定的节点集施加约束,所以这就是说找到当前节点的所有 B 元素子节点,然后为每个节点找到它们的 C 元素子节点,但过滤该列表以仅包含那些自己的节点至少有一个 D 和一个 E 孩子。

于 2013-10-30T16:40:28.907 回答