转换此
的实际最佳方式是什么?<root>
<data/>
<data/>
</root>
进入这个:
<data1/>
<data1/>
<data2/>
<data2/>
不知怎的,xslt引擎的工作方式让我觉得它只能产生这个:
<data1/>
<data2/>
<data1/>
<data2/>
由这个简单的表格生成:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="data">
<xsl:element name="data1"/>
<xsl:element name="data2"/>
</xsl:template>
</xsl:stylesheet>
是否可以在转换结束时进行某种重新排序(不使用第二个应用程序)?
答案 0 :(得分:1)
如果您只想添加类似示例样式表中的元素,但顺序不同,则可以这样做。
<xsl:template match="/">
<!-- adding data1 for every data tag-->
<xsl:for-each select="//data" >
<xsl:element name="data1"/>
</xsl:for-each>
<!-- adding data2 for every data tag-->
<xsl:for-each select="//data" >
<xsl:element name="data2"/>
</xsl:for-each>
</xsl:template>
答案 1 :(得分:1)
您必须使用两个单独的模板来创建data1
和data2
元素。然后,您可以从与根节点匹配的模板中应用这些模板。在这种情况下,mode
的{{1}}属性也很有用:
xsl:template