根据现有节点分配变量

时间:2013-03-15 20:46:41

标签: xml xslt

目前,我有一个变量,用于检查XML中的节点是否为true / false

<xsl:variable name="bVariable" select="nodename[@elementname = 'true']"/>

我将使用不同的XML,可能有也可能没有该节点。如果它没有节点,我希望bVariable是假的。如果确实如此,我希望它与上面的方式完全相同(并根据elementname的值返回true / false)。

谢谢!

1 个答案:

答案 0 :(得分:0)

您必须检查节点是否存在。如果它存在,变量将具有您在上面解释的选择选项 - 否则select应该等于'false'

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

<xsl:template match="/">
    <xsl:variable name="bVariable">
        <xsl:choose>
            <xsl:when test="not(nodename)">
                <xsl:value-of select="'false'"/>
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="nodename[@elementname = 'true']"/>            
            </xsl:otherwise>
        </xsl:choose>
    </xsl:variable>

</xsl:template>

</xsl:stylesheet>

但请 - 为了给你一个答案,给我们一个带有预期输出的源XML示例!

此致 彼得