XSL count count - PullRequest
       8

XSL count count

0 голосов
/ 29 марта 2011

Это пример XML-файла:

<sample s="false">
  <assertionResult>
    <name>XML Assertion</name>
    <failure>false</failure>
    <error>false</error>
  </assertionResult>
  <assertionResult>
    <name>Error Assertion</name>
    <failure>false</failure>
    <error>false</error>
  </assertionResult>
  <assertionResult>
    <name>Success Assertion</name>
    <failure>false</failure>
    <error>false</error>
  </assertionResult>
  <assertionResult>
    <name>XML Schema Assertion</name>
    <failure>false</failure>
    <error>true</error>
  </assertionResult>
</sample>

Исходный файл состоит из выборок узлов, таких как приведенный выше.Мне нужно сосчитать все узлы sample с атрибутом s = "false", кроме тех, которые имеют <error>true</error> внутри.Это код, который я использую для подсчета:

select="count(/testResults/*[attribute::s='false'])"

Проблема в том, что я не знаю, как исключить узлы, у которых есть дочерний элемент со значением "true".

Ответы [ 2 ]

2 голосов
/ 29 марта 2011

Вы можете перечислить несколько наборов квадратных скобок, чтобы добавить новые условия к вашему условию, т.е.

/ testResults / * [@ s = 'false'] [not (.// error = 'true')]

0 голосов
/ 29 марта 2011

select = "count (/ testResults / * [attribute :: s = 'false' and not (error = 'false') ])"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...