我正在尝试编写一个简单的 XSLT 模板来执行以下操作:
- 如果存在输入节点:只需将输入的内容复制到输出
- 如果输入节点不存在:将默认值传递给输出
我的模板是:
<?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 一起使用(如果这改变了任何东西。)
请帮我处理这个问题。