2015-09-29 32 views
0

例如,下面的XSL是用下面的XML調用的,'param'的值是什麼?具有不匹配選擇的參數的值是多少?

問題是我需要測試不匹配的屬性,它顯然不是一個空字符串。

<el></el><!-- has no attribute 'attr' to match --> 

<xsl:template match="*"> 
    <xsl:call-template name="template"> 
     <xsl:with-param name="param" select="@attr" /> 
    </xsl:call-template> 
</xsl:template> 

<xsl:template name="template"> 
    <xsl:param name="param" /> 
    <xsl:value-of select="$param" /> 
</xsl:template> 

回答

2

的值將是空節點集

你可以看看規格here

有在這一段還提供了一個線索的最後一個音符:

備註:一個便捷的方式來指定空節點集作爲參數的默認值是: <xsl:param name="x" select="/.."/>

由於根節點沒有父節點,因此將始終返回一個空節點。

+0

任何想法如何測試,看看帕拉姆是否是空的節點集? – KthProg

+2

如果'$ param'是空的節點集,''應該返回true。 –

+0

@KthProg這是個詭計的問題。一個參數可以是空的也可以不是,它可以是節點集或不是。 –