xml - 在 XSLT 中使用 If Else

标签 xml xslt

如果条件匹配,我需要选择一个节点。我是 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/

相关文章:

具有以 XML 定义的布局的 java swing 库

php - 获取 XML DOM 中的段落 (PHP)

java - 由 : org. xml.sax.SAXParseException 引起:文件过早结束

c# - XSLT 将 xml 转换为 csv 并为每条记录重复同级

xml - 如何使用 XSLT 散列 XML 中的字段

XSLT 管理 - 将元数据附加到输出和参数的样式表

xslt 1.0,字符串长度函数

android - 如何从新闻网站获取完整的新闻内容

html - XSLT 中的嵌套 for-each 循环不起作用

java - 使用java替换xml字符串中精确匹配的字符串