Синтаксис атрибута-значения-шаблона {$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.