У меня есть следующий код XSLT, который почти выполняет то, что я хочу:
<xsl:variable name="scoredItems"
select=
".//item/attributes/scored[@value='true'] |
self::section[attributes/variable_name/@value='SCORE']/item |
.//item//variables//variable_name"/>
Я хочу изменить это на более сложное логическое выражение:
<xsl:variable name="scoredItems"
select=
".//item/attributes/scored[@value='true'] or
(self::section[variable_name/@value='SCORE']/item and
(not (.//item/attributes/scored[@value='false']))) or
.//item//variables//variable_name"/>
Однако, когда я запускаю это, я получаю следующую ошибку:
javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:832)
at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:618)
Как мне это исправить? (Обратите внимание, что я использую XSLT 1.0.)