我有带标签的XML:
Data before ....
<table1> some data 1</table1>
<table1> some data 2 </table1>
Data after ....
如何用一些XSLT包装这个标签,所以我会得到这个:
Data before ....
<tab1><table1> some data 1</table1></tab1>
<tab1><table1> some data 2 </table1></tab1>
Data after ....
可以这样做吗?
答案 0 :(得分:5)
此类事情的标准方法是从身份模板
开始<xsl:template match="@*|node()" name="ident">
<xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
</xsl:template>
将输入XML复制到输出不变,除非被更多特定模板覆盖。然后,为要更改的内容定义其他模板 - 将每个table1
元素包装在可以使用的tab1
的额外层中
<xsl:template match="table1">
<tab1>
<xsl:call-template name="ident" />
</tab1>
</xsl:template>
如果您在Stack Overflow(或网络上的其他地方)搜索“身份模板”,您会发现更多此技术的示例。