XSL模板传递路径为字符串

时间:2014-05-08 19:43:33

标签: xml xslt transform

我正在尝试将xml路径作为字符串传递给模板。

<xsl:call-template name="checkPath">
    <xsl:with-param name="path" select="'parent/child1'" />
</xsl:call-template>

在模板中,我将一个子项附加到传递的字符串,以检查是否存在具有路径和给定名称的子元素。

<xsl:template name="checkPath">
    <xsl:param name="path"/>
    <xsl:variable name="childElement" select="child-name"/>
    <xsl:if test="$path/child2[name=$childElement]">
         //Do some processing.  
    </xsl:if>
</xsl:template>

上面的XSL给出了以下错误。

Invalid conversion from 'java.lang.String' to 'node-set'.

我正在尝试解析下面的XML。

<parent>
    <child1>
        <child2>
            <name>name1</name>
        </child2>
    </child1>
</parent>

.....
<child-name>name1</child-name>

1 个答案:

答案 0 :(得分:2)

不要将路径作为字符串传递,只需删除引号并传递路径选择的实际节点集。

<xsl:call-template name="checkPath">
    <xsl:with-param name="path" select="parent/child1" />
</xsl:call-template>