С учетом следующего частичного XML-документа:
<section>
<entry typeCode="DRIV">
<act classCode="AT" moodCode="DEF">
<statusCode code="completed"/>
</act>
</entry>
<entry typeCode="DRIV">
<act classCode="ACT" moodCode="DEF">
<statusCode code="completed"/>
</act>
</entry>
<entry typeCode="DRIV">
<act classCode="ACT" moodCode="DEF">
<statusCode code="completed"/>
</act>
</entry>
<entry typeCode="DRIV">
<act classCode="ACT" moodCode="DEF">
<statusCode code="completed"/>
</act>
</entry>
<section>
<entry typeCode="DRIV">
<act classCode="AT" moodCode="DEF">
<statusCode code="completed"/>
</act>
</entry>
<entry typeCode="DRIV">
<act classCode="ACT" moodCode="DEF">
<statusCode code="completed"/>
</act>
</entry>
</section>
</section>
Я хочу заявить, что все элементы, которые являются потомками внешнего элемента <section>
, но не внутреннего элемента <section>
, имеют для атрибута classCode
значение "ACT"
.
Другими словами, учитывая приведенный выше пример, мне не нужно утверждать значение двух <act>
потомков во втором <section>
элементе. Также может быть один или несколько вложенных <entry>
элементов (не максимум).
Я попробовал следующее выражение XPath,
<xsl:when test="cda:section/cda:entry/cda:act//@classCode='ACT'"/>
Если какой-либо из элементов <act>
имеет значение для атрибута classCode
, отличное от "ACT"
, утверждение должно завершиться неудачей. Я ищу совет о том, как изменить выражение XPath, чтобы оно соответствовало этому требованию.