我想在XSLT中使用双引号,但出现错误:
<xsl:param name="unsorted-values" as="xs:string*"
select=" 'Test 1','Test 1 with quote 21"' "/>
由于字符串中的双引号,显然它不能像这样工作。我试图像'Test 1 with quote 21\"'
一样逃脱,但是没有用。有什么办法可以使用双引号吗?
答案 0 :(得分:1)
在用双引号分隔的XML属性内,您可以使用实体引用"
(或适当的数字字符引用)。
在用单引号分隔的XSLT / XPath 2或3字符串文字中,您可以使用两个单引号,例如''''
内加单引号。或者,如果字符串文字定界符是双引号,则可以在例如""""
使用带双引号的字符串。
具有各种选项的完整示例是
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
version="3.0">
<xsl:param name="s1" as="xs:string*"
select="'string with single quote: ''',
"string with double quote: """,
'string delimited by single quotes with single quote: '' and double quote: "',
"string delimited by double quotes with single quote: ' and double quote: """"/>
<xsl:template match="/*">
<xsl:copy>
<xsl:value-of select="$s1" separator=" "/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
输出
<root>string with single quote: '
string with double quote: "
string delimited by single quotes with single quote: ' and double quote: "
string delimited by double quotes with single quote: ' and double quote: "</root>