XSLT 1.0模板返回元素为空

时间:2016-09-08 04:44:39

标签: xml xslt

我正在尝试让模板调用另一个模板,该模板创建一个具有普通值的简单XML节点。我真正的任务很难,但我简化了一些工作。

注意:我在这里看到了一些例子但我没有得到相同的结果,我无法看到我做错了什么。

我想结束这个:

<keyword>abc-company.com</keyword>
<keyword>test</keyword>
<keyword>ABC Company</keyword>

但我一直以此结束:

<keyword>abc-company.com</keyword>
<keyword/>
<keyword>ABC Company</keyword>

我故意返回一个普通的字符串值,但最终我想传入一个值,更改它并为元素返回一个值,但我为此示例简化了它。

<xsl:template name="keywords">
    <xsl:param name="metas_branding"/>
    <xsl:param name="metas_keywords"/>
    <xsl:param name="ad_branding"/>
    <keyword><xsl:value-of select="$metas_branding"/></keyword>
     <xsl:call-template name="csvToNodes">
             <xsl:with-param name="csvString" select="$metas_keywords"/>
    </xsl:call-template>
    <keyword><xsl:value-of select="$ad_branding"/></keyword>
</xsl:template>

<xsl:template name="csvToNodes">
    <xsl:param name="csvString"/>
    <xsl:element name="'keyword'">
            <xsl:value-of select="test"/>
    </xsl:element>
</xsl:template>

1 个答案:

答案 0 :(得分:0)

<xsl:value-of select="test"/>

正在寻找一个元素名称test,即当前元素的子元素。我猜你的XML没有这样的元素(或者也许它有,但它是空的),所以返回的值是一个空字符串。

你可能想写:

<xsl:value-of select="'test'"/>