我需要在XSLT中生成标记abc。我看到我们必须在XSLT中指定如下:
<string name ="abc"></string>
输出中的位
<string name ="abc"></string>
但我需要像
那样的骄傲<string>abc</string>
请建议。
答案 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元素。