我的问题很简单,如何使用XSLT将数据插入到我在XSLT中创建的元素标记中?
例如我用它来创建我的元素:
<xsl:template match="VEHICLE">
<xsl:element name="{@STATUS}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
XML结构:(输入)
<cars>
<VEHICLE>
<MODEL>FORD</MODEL>
//other elements here
</VEHICLE>
<VEHICLE>
<MODEL>DODGE</MODEL>
//other elements here
</VEHICLE>
</cars>
(期望输出)
<cars>
<VEHICLE>
<MODEL>FORD</MODEL>
<STATUS>SOLD</STATUS>
//other elements here
</VEHICLE>
<VEHICLE>
<MODEL>DODGE</MODEL>
<STATUS>AVAILABLE</STATUS>
//other elements here
</VEHICLE>
</cars>
答案 0 :(得分:1)
您可以像这样添加元素<foo/>
:
<xsl:template match="VEHICLE">
<xsl:element name="{@STATUS}">
<xsl:apply-templates/>
<foo/>
</xsl:element>
</xsl:template>
答案 1 :(得分:0)
在您的输入文档中,我已将//other elements here
更改为<!--//other elements here-->
但除此之外,此转换会提供您想要的结果;
<强>输入强>
<cars>
<VEHICLE>
<MODEL>FORD</MODEL>
<!--//other elements here-->
</VEHICLE>
<VEHICLE>
<MODEL>DODGE</MODEL>
<!--//other elements here-->
</VEHICLE>
</cars>
<强>变换强>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="cars">
<cars>
<xsl:apply-templates/>
</cars>
</xsl:template>
<xsl:template match="VEHICLE">
<VEHICLE>
<xsl:if test="MODEL = 'FORD'">
<STATUS>SOLD</STATUS>
</xsl:if>
<xsl:if test="MODEL = 'DODGE'">
<STATUS>AVAILABLE</STATUS>
</xsl:if>
<xsl:copy-of select="node()"/>
</VEHICLE>
</xsl:template>
</xsl:transform>
<强>结果强>
<cars>
<VEHICLE>
<STATUS>SOLD</STATUS>
<MODEL>FORD</MODEL>
<!--//other elements here-->
</VEHICLE>
<VEHICLE>
<STATUS>AVAILABLE</STATUS>
<MODEL>DODGE</MODEL>
<!--//other elements here -->
</VEHICLE>
</cars>