2014-05-08 50 views
0

我試圖將xml路徑作爲字符串傳遞給模板。作爲字符串的XSL模板傳遞路徑

<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> 

回答

2

不要將路徑作爲字符串傳遞,只需刪除引號並傳遞路徑選擇的實際節點集。

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