xsl:将两个变量连接成一个新变量

时间:2016-08-11 20:16:54

标签: xslt

我只是在学习xsl。我试图连接两个变量的值,并在它们之间加一个连字符。这是我的代码:

<xsl:variable name="checkboxvalue" select="translate(@value, ' ', '')" />
                            <xsl:variable name="questionname" select="{ancestor::element/attribute::name}"/>
            <xsl:variable name="newcheckboxvalue" select="concat($questionname,-,$checkboxvalue)"/>

当我运行使用此.xsl文件的页面时,我明白了  路径表达式中出现意外的标记\“{\”,“路径表达式中的致命错误:意外的标记”,“”

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您获得的错误是由于第二个变量

<xsl:variable name="questionname" select="{ancestor::element/attribute::name}"/>

这里不允许使用花括号,因为XSLT已经在select属性中预期了一个表达式。你应该这样做。

 <xsl:variable name="questionname" select="ancestor::element/attribute::name" />

或者这......

<xsl:variable name="questionname" select="ancestor::element/@name" />

另外,对于你的第三个语句,你需要在连字符中包含连字符,以对待它是一个字符串

 <xsl:variable name="newcheckboxvalue" select="concat($questionname, '-' ,$checkboxvalue)"/>

如果您想了解花括号的使用方法,请阅读Attribute Value Templates