2009-09-29 152 views
4

我看到這個網站 http://www.xsltfunctions.com/xsl/fn_string-length.html 的字符串長度我認爲這是XSLT 2.0語法。XSLT 1.0中,字符串長度功能

儘管在XSLT 1.0,我想這:

<xsl:template match="/"> 
    <xsl:value-of select="string-length(())" /> 
</xsl:template> 

,我得到了一個錯誤。有沒有我可以用來轉換()並將其傳遞給字符串長度的任何函數,以便我可以得到0?

+0

您爲什麼需要這樣做? – 2009-09-29 17:59:36

回答

8

XPath 1.0 string-length()只接受一個字符串參數。任何不是字符串的東西都會被轉換爲一個字符串。一組空括號不能被轉換,並且在1.0中沒有序列。要獲得0,可以喂空字符串:

<xsl:template match="/"> 
    <xsl:value-of select="string-length('')" /> 
</xsl:template> 

得到一些有意義的事情,你可以養活一個節點集,例如:

<xsl:template match="/"> 
    <xsl:value-of select="string-length(some/xpath)" /> 
</xsl:template> 

在節點集中的第一個節點將被轉換爲一個字符串並傳遞給該函數。

+1

如果你想在'string-length()'中得到節點的內容而不是節點本身,xpath可以包含'text()'函數。 – 2016-07-25 20:33:36

2

更多信息:如果您沒有將任何參數傳遞給string-length(),它將評估當前上下文節點。

請注意,作爲參數傳遞的xpath相對於xpath表達式中的當前上下文