如果条件匹配,我需要选择一个节点。我是 XSLT 的新手,我试图寻找答案,但找不到适合我的解决方案。 我想在有 AddressType = 'Personal' 时选择一个地址,如果没有 AddressType = Personal,请检查“Second”,如果没有则检查“Office”。 一个正常的 If Else。 我尝试使用 and,如果 XML 文件中只存在一种类型的 AddressType,这可能会起作用。在我的例子中,XML 文件中最多可以有 11 个地址类型(随机顺序),我只能传递一个。
这看起来像我的源 XML:
<Person>
<address>
<street></street
<number></number>
<City></City>
<AddressType>Personal</AddressType>
</address>
<address>
<street></street
<number></number>
<City></City>
<AddressType>Second</AddressType>
</address>
<address>
<street></street
<number></number>
<City></City>
<AddressType>Office</AddressType>
</address>
</Person>
有什么建议吗?谢谢
最佳答案
您需要使用 <xsl:choose>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="/Person/address/AddressType='Personal'">
<!-- DO Stuff -->
</xsl:when>
<xsl:when test="/Person/address/AddressType='Second'">
<!-- DO Stuff -->
</xsl:when>
<xsl:when test="/Person/address/AddressType='Office'">
<!-- DO Stuff -->
</xsl:when>
<xsl:otherwise>
<!-- Do your else stuff -->
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
关于xml - 在 XSLT 中使用 If Else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9971960/