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 になります (2 番目の 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 要素の子を見つけますが、そのリストをフィルタリングして、それ自体が含まれるものだけを含めることです。少なくとも 1 人の D と 1 人の E の子を持つ。

于 2013-10-30T16:40:28.907 に答える