У меня есть следующий XML-код:
<MainElement name = "apple">
<Parameter variable1 = "foo" variable2 = "bar"/>
<Parameter variable1 = "foo" variable2 = "notBar"/>
Я использую xsl для распечатки имени MainElement
, если оно содержит параметр с variable1 == "foo"
и variable2 == "bar"
, как указано ниже:
<xsl:for-each select = "MainElement">
<xsl:if test = "Parameter/@variable1 = 'foo' and Parameter/@variable2 = 'bar'">
...
</xsl:if>
<xsl:if test = "Parameter/@variable1 = 'foo' and Parameter/@variable2 = 'notBar'">
</xsl:for-each>
Проблема в том, что этот xsl-код не проверяет, содержит ли один элемент Parameter
оба соответствующих атрибута, он просматривает оба элемента Parameter, чтобы увидеть, содержит ли один из них соответствующие атрибуты.
Я знаю, что мог бы попробовать другой метод без if
, но теперь для моего собственного любопытства я хочу знать, как можно заставить оператор if искать условные атрибуты в одном конкретном элементе, а не среди обоих?