我是XSLT的新手,我正在尝试完成以下案例
我有以下格式的xml
<A>
<B>..</B>
<C>..</C>
..
<Z>..</Z>
</A>
我正在尝试不久之后添加一个新节点,以便最终的xml将转换为
<A>
<aa>
<B>..</B>
<C>..</C>
..
<X>...</X>
</aa>
</A>
为了实现这个目的,我编写了以下xslt代码
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="B">
<aa>
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</aa>
</xsl:template>
通过使用这个我得到以下输出
<A>
<aa>
<B>..</B>
</aa>
<C>..</C>
..
<X>..</X>
</A>
我不确定需要对xslt进行哪些更改以实现所需的输出
答案 0 :(得分:0)
如果您想将A
的所有孩子都包裹在单 aa
中,那么您需要在匹配A
的模板中执行此操作,而不是{ {1}}。
B