XSLT生成标记

时间:2012-03-26 11:31:17

标签: xslt-1.0

我需要在XSLT中生成标记abc。我看到我们必须在XSLT中指定如下:

<string name ="abc"></string>

输出中的位

<string name ="abc"></string>

但我需要像

那样的骄傲
<string>abc</string>

请建议。

1 个答案:

答案 0 :(得分:0)

attribute-value-template语法{$nm}仅适用于属性的值。在元素的内容中,您可以使用xsl:value-of,如以下修订版代码所示。没有必要在xsl:text元素周围包裹xsl:value-of

<xsl:variable name="nm"><xsl:value-of select="@textType" /></xsl:variable>
<object id="{@textType}" class="com.FontResolver" method="resolveFont">
<string><xsl:value-of select="$nm"/></string></object>
<font idref="{@textType}"/>

另一方面,xsl:value-of仅用于文本,不用于标记。如果在某些其他情况下您想要生成XML元素,那么您可以使用xsl:value-of来插入作为变量或其他表达式值的节点集,而不是使用xsl:copy-of;或者您可以使用xsl:element生成任何XML元素。