首页 > 解决方案 > XSLT if 条件:将元素的值与字符串进行比较

问题描述

我正在尝试将元素值与字符串进行比较,但 if 条件不起作用。如果Hello的值为 World,我想获取Status的值。所以输出应该是ABCDEFG

XML:

<?xml version="1.0" encoding="UTF-8"?>
<DATA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Hello>World</Hello>
    <Company>
        <Id>12345</Id>
        <Name>Name</Name>
        <Status>ABCDEFG</Status>
    </Company>
</DATA>

XSLT:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    version="2.0">

  <xsl:output method="xml" indent="yes" />
  <xsl:template match="/"> 
      <Account>
        <xsl:if test="Hello = World">
            <xsl:value-of select="DATA/Company/Status" />
        </xsl:if>
      </Account>
  </xsl:template>
</xsl:stylesheet>

标签: xmlxsltxpath

解决方案


试试这种方式:

<xsl:template match="/DATA"> 
    <Account>
        <xsl:if test="Hello = 'World'">
            <xsl:value-of select="Company/Status" />
        </xsl:if>
    </Account>
</xsl:template>

推荐阅读