这是我期望的XML结果:
<category>
<text>
$course$/something
</text>
</category>
这是我尝试过的:
<xsl:variable name="course">$course$/</xsl:variable>
<category>
<text>
<xsl:value-of select="concat('$course', /office:document/office:meta/dc:title)" />
<xsl:value-of select="concat('$course$/', /office:document/office:meta/dc:title)" />
<xsl:value-of select="concat('$course$/', /office:document/office:meta/dc:title)" />
</text>
</category>
使用<xsl:value-of select="concat('hello ', 'world')"/>
可以得到预期的结果,但上述value-of
都不起作用。它们都给出一个空字符串(<text />
)。
我假设节点/office:document/office:meta/dc:title
将被强制转换为字符串,但我仍然对什么是转义美元符号和正斜杠的正确方法感到困惑。
为什么不能简单地:
<category>
<text>
<xsl:text>$course$/</xsl:text>
<xsl:value-of select="/office:document/office:meta/dc:title" />
</text>
</category>
或者,如果你必须:
<xsl:variable name="course">$course$/</xsl:variable>
<category>
<text>
<xsl:value-of select="concat($course, /office:document/office:meta/dc:title)" />
</text>
</category>
</xsl:template>
注意变量周围没有引号