У меня есть следующий XML:XSLT «когда тест» не работает правильно
<?xml version="1.0" encoding="UTF-8"?>
<ClaimSystemConfig>
<MHC>
<businessArea>Test2</businessArea>
</MHC>
<MHC>
<businessArea>Test1</businessArea>
</MHC>
<PowerSTEPP>
<businessArea>Test3</businessArea>
</PowerSTEPP>
<Amisys>
<businessArea>CSAAQA</businessArea>
<WADL>
<url>Blah</url>
<services>
<service>
<name>authSearch</name>
<tenant>rest/clientd/</tenant>
<version>1</version>
</service>
<service>
<name>memberSearch</name>
<tenant>rest/clientd/</tenant>
<version>1</version>
</service>
<service>
<name>memberSummary</name>
<tenant>rest/clientd/</tenant>
<version>3</version>
</service>
</services>
</WADL>
</Amisys>
</ClaimSystemConfig>
Теперь я хочу изменить приведенный выше XML с помощью XSLT только если один из <service>
тега имеет <name>
в memberSummary
и <version>
как 3
. Я стараюсь со следующим условием, но он не работает.
<xsl:choose>
<xsl:when test="//ClaimSystemConfig/Amisys/WADL/services/service[name='memberSummary' and version=3]">
......do something.....
</xsl:when>
<xsl:otherwise>
...do nothing...
</xsl:otherwise>
</xsl:choose>
Может ли кто-нибудь помочь мне в создании правильного состояния?
Вот парциальное XSLT:
<xsl:choose>
<xsl:when test="//ClaimSystemConfig/Amisys/WADL/services/service[name='memberSummary' and version=3]">
<type>WADL</type>
<METHOD>POST</METHOD>
<service>memberSummary</service>
<requestSpecific>healthplan/memberstatuses</requestSpecific>
<inputSchema>
<ver:routeData xmlns:ver="version3">
</ver:routeData>
</inputSchema>
<parms>
<parm>
<name>eao</name>
<value><xsl:value-of select="eao"/></value>
</parm>
</parms>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
Это поможет, если вы более подробно объясните, что не работает. Вы получаете сообщение об ошибке в этом случае или неожиданный вывод? Отображение ожидаемого результата, а также фактического вывода поможет много. Благодаря! –
C @ Тим, когда я проверить состояние вне с помощью любого инструмента Xpath Tester, он возвращает мне результат 'Element = ' memberSummary отдых/clientd/ ' ', но когда Я включаю одно и то же изменение в моем приложении, управление не происходит в состоянии 'когда'. Похоже, что что-то не так. –
Думаю, вам нужно показать немного больше вашего XSLT. Если вы можете предоставить полный, но минимальный пример XSLT, который демонстрирует проблему, это поможет. Вы уверены, что он даже достигает, например, 'xsl: choose'? –