我需要在XSLT中生成一个标记abc。我看到我们必须在XSLT中指定如下:
<string name ="abc"></string>
输出中的位我得到
<string name ="abc"></string>
但我需要像一样的输出
<string>abc</string>
请提供建议。
属性值模板语法{$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:copy-of
插入作为变量或其他表达式值的节点集,而不是使用xsl:value-of
;或者可以使用xsl:element
生成任何XML元素。