0

すべてのノードをカウントしながら、normalize space() ですべてのスペースを削除し、それらにフィルターを使用したいと考えています。

私が欲しいのは次のようなものです:

<{namespace}:Text>
  <{namespace}:Info>This is text from Info Node</{namespace}:Info>
  Here is text which i want to find
</{namespace}:Text>

{namespace}:Text からすべての子をカウントしたいのですが、 {namespace}:Info と [namespace}:otherelement を無視したいので、それらの内容も無視する必要があります。count a 1 の結果として、処理しなければならないノードがあることを知りたいので、テンプレート workwithcontent または workwithempty を呼び出すことができます。

しかしもちろん、フィルターに適合しない他のノードも見つけたいと思っています。

4

1 に答える 1

0

次のようなものが欲しいようです

<xsl:template match="{namespace}:Text">
  <xsl:variable name="count"
          select="count(child::node()[not(self::{namespace}:Info)])" />
  ...

<{namespace}:Text>これにより、要素を除く、テキスト ノードと要素ノードの両方を含むのすべての子ノードがカウントされ<{namespace}:Info>ます。

それが必要でない場合は、明確にしてください。

軸はオプションですが、child::XPath 式が何を選択するかがより明確になります。

于 2013-07-19T19:21:34.833 に答える