在XSLT中动态创建元素 [英] Create elements dynamically in XSLT
本文介绍了在XSLT中动态创建元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使用XSLT动态创建与Main xml中的< Group>
元素一样多的< Group文件夹=新Xml中的Group1>
。另外,添加为最后一个子元素的< Data>
元素仅应在内部添加一次。
I want to create as many <Group>
elements as they are in the Main xml dynamically using XSLT as <Group folder ="Group1">
in the new Xml. Also, the <Data>
element added as the last child should be added only once inside.
Main Xml
<Root>
<ClassA>
<Groups>
<Group1>
<Group2>
<Group3>
............
</Group3>
</Group2>
</Group1>
</Groups>
<Data>
<Name>George</Name>
<Class>A</Class>
</Data>
</ClassA>
</Root>
我需要这样的Xml
<Data>
<ClassA>
<Group folder = "Group1">
<Group folder = "Group2">
<Group folder = "Group3">
............
<Data>
<Name>George</Name>
<Class>A</Class>
</Data>
</Group>
</Group>
</Group>
</ClassA>
</Data>
推荐答案
<xsl:output method="xml" indent="yes"/>
<xsl:template match="Root">
<xsl:element name="Data">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="ClassA">
<xsl:element name="ClassA">
<group floder="{Groups/Group1/name()}">
<group floder="{Groups/Group1/Group2/name()}">
<group floder="{Groups/Group1/Group2/Group3/name()}">
<xsl:value-of select="Groups/Group1/Group2/Group3"/>
<xsl:copy-of select="Data"/>
</group>
</group>
</group>
</xsl:element>
</xsl:template>
尝试对您是否有益。
这篇关于在XSLT中动态创建元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文