使用XSL将元素数据放在元素内

时间:2012-01-06 00:00:48

标签: xml xslt

我试图将数据从一个元素放到另一个元素。 我已经完成了一个XSL样式表,它会发出这两个字符串。

<fordon pris="129900"><name>Honda</name><modellTyp>1</modellTyp></fordon>
<fordon pris="119000"><name>Nissan</name><modellTyp>2</modellTyp></fordon>

但是我想在我的modellTyp中得到numers(1和2),所以输出应该是 <modellTyp1><modellTyp2>

这是我的XSL文件输出结果的样子

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="ad">
<xsl:element name="fordon">
<xsl:attribute name="pris">
<xsl:copy-of select="price" />
</xsl:attribute>
<xsl:copy-of select="name"/>
<xsl:element name="modellTyp">
<xsl:value-of select="type" />
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

提前致谢。

2 个答案:

答案 0 :(得分:1)

Attribute Value Template

中使用大括号动态创建元素名称
<xsl:element name="{concat('modellTyp', type)}">
    <xsl:value-of select="type"/>
</xsl:element>

答案 1 :(得分:1)

@ lwburk的回答是正确的,但有更简单/更短的解决方案

<xsl:element name="modellTyp{type}">     
  <xsl:value-of select="type"/> 
</xsl:element>