我有一个简单的XML,我想添加一个新的root。当前的根目录是<myFields>
,我想添加<myTable>
,因此它看起来像。
<myTable>
<myFields>
.
.
</myFields>
</myTable>
答案 0 :(得分:5)
这样的事情对你有用......
<xsl:template match="/">
<myTable>
<xsl:apply-templates/>
</myTable>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
答案 1 :(得分:1)
这可能是最短的解决方案 :):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<myTable>
<xsl:copy-of select="node()" />
</myTable>
</xsl:template>
</xsl:stylesheet>
答案 2 :(得分:1)
此样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/*">
<myTable>
<xsl:call-template name="identity"/>
</myTable>
</xsl:template>
<xsl:template match="@*|node()" name="identity">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
注意:复制所有内容(根元素之前的PI),然后添加myTable
befere 根元素。
答案 3 :(得分:0)
你让我足够接近
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:element name="myTable">
<xsl:copy-of select="*" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>