2012-03-26 108 views
-1

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

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

位输出我得到

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

但我需要一个像

<string>abc</string> 

请咨询outpult。

+0

你的输入和输出是什么? – 2012-03-26 11:33:16

+0

我的XSLT就像 - {$纳米} <字体IDREF = ”{@ textType}“/>和我需要等的输出 - <对象ID = ”宋体“ 类=” com.FontResolver“method =”resolveFont“> Calibri nishMaria 2012-03-26 11:43:02

回答

0

属性值模板语法{$nm}只适用于属性的值。在元素的内容中,您可以改为使用xsl:value-of,如下面的代码修订所示。没有必要围绕xsl:value-of元素包装xsl:text

<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元素。