如何在文本中添加文字和变量?

时间:2012-07-20 20:21:43

标签: xml xslt xpath

我需要为以下标记创建xsl:

<role roletype="Learner">

学习者被保存在一个标有$ wsRole的变量中。

此代码无效:

 <xsl:variable name="fullWsRole">
     <xsl:value-of select="concat('&quot;', $wsRole,'&quot;')"/>
 </xsl:variable>            

 <role roletype="{$fullWsRole}">
 </role>

如何创建节点

<role roletype="Learner">    ?

2 个答案:

答案 0 :(得分:2)

以下是如何执行此操作

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:variable name="fullWsRole" select="'Learner'"/>

 <xsl:template match="/">
  <role roletype="{$fullWsRole}"/>
 </xsl:template>
</xsl:stylesheet>

当对任何XML文档(未使用)应用此转换时,会生成所需的正确结果

<role roletype="Learner"/>

解释:使用 AVT (属性值模板)

答案 1 :(得分:1)

假设变量$wsRole包含Learner

<xsl:variable name="wsRole">Learner</xsl:variable>

,预期结果是

<role roletype="Learner"></role>

只需使用:

<role roletype="{$wsRole}"></role>