0

我正在尝试编写一个简单的 XSLT 模板来执行以下操作:

  1. 如果存在输入节点:只需将输入的内容复制到输出
  2. 如果输入节点不存在:将默认值传递给输出

我的模板是:

<?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:call-template name="conditionalCopy">
        <xsl:with-param name="key"/>
    </xsl:call-template>
</xsl:template>

<xsl:template name="conditionalCopy">
    <xsl:param name="key"/>
        <xsl:choose>
           <xsl:when test="key">
             <xsl:value-of select="key"/>
           </xsl:when>
           <xsl:otherwise>
             <xsl:text> no value </xsl:text>
           </xsl:otherwise>
       </xsl:choose>
</xsl:template>
</xsl:stylesheet>

但是,它总是进入 else 情况。顺便说一句,我将它与 Altova Mapforce 一起使用(如果这改变了任何东西。)

请帮我处理这个问题。

4

1 回答 1

0

要访问变量或参数,您应该使用$符号:

<xsl:when test="$key">
    <xsl:value-of select="$key"/>
</xsl:when>
于 2014-04-07T16:27:21.803 回答