2013-07-19 1 views
0

Я хочу удалить все пробелы с нормализацией пространства() при подсчете всех узлов и использовать фильтр на них.XSLT подсчет дочерних узлов с набором фильтров

То, что я хочу что-то вроде этого:

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

Я хочу, чтобы сосчитать всех детей от {имен}: Текст, но я хочу, чтобы игнорировать {имен}: Info и [пространства имен}: otherelement и их содержание также следует игнорировать. Я хочу, чтобы в результате счет 1, так что я знаю, что есть узлы, которые я должен обрабатывать, поэтому я могу назвать шаблоны workwithcontent или workwithempty.

Но, конечно, я тоже хочу найти другие узлы, которые не подходят для фильтра.

ответ

0

Это звучит, как вы хотите что-то вроде

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

это будет подсчитывать все дочерние узлы <{namespace}:Text>, в том числе оба текстовых и узлов элементов, для <{namespace}:Info> элементов, за исключением.

Если это не то, что вам нужно, уточните пожалуйста.

Ось child:: не является обязательной, но делает ее более очевидной, чем выберет выражение XPath.