有多个孩子的 XML 组
Group XML with multiple childs
大家好,有人可以帮助 xslt 吗?我正在尝试按特定节点将此 xml 分组,但我将 运行 保留为一个不包含 child5 下的嵌套信息的问题...任何帮助将不胜感激。
这是开始xml:
<parent>
<a>1</a>
<b>
<b1>
<b2>data</b2>
</b1>
</b>
<a>1</a>
<b>
<b1>
<b2>data2</b2>
</b1>
</b>
</parent>
期望的输出是:
<parent>
<data>
<a>1</a>
<b>
<b1>
<b2>data</b2>
</b1>
</b>
</data>
<data>
<a>2</a>
<b>
<b1>
<b2>data</b2>
</b1>
</b>
</data>
</parent>
我已经试过了,但是它会将 b 下的所有信息都更改为字符串...?
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="parent">
<parent>
<xsl:for-each-group select="*" group-starting-with="a">
<data>
<xsl:for-each select="current-group()">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:for-each>
</data>
</xsl:for-each-group>
</parent>
</xsl:template>
</xsl:stylesheet>
在分组内部,您似乎只想复制该组,例如
<xsl:template match="parent">
<parent>
<xsl:for-each-group select="*" group-starting-with="a">
<data>
<xsl:copy-of select="current-group()"/>
</data>
</xsl:for-each-group>
</parent>
</xsl:template>
或者使用基本模板设置身份转换并使用 <xsl:apply-templates select="current-group()"/>
而不是 xsl:copy-of
。
大家好,有人可以帮助 xslt 吗?我正在尝试按特定节点将此 xml 分组,但我将 运行 保留为一个不包含 child5 下的嵌套信息的问题...任何帮助将不胜感激。
这是开始xml:
<parent>
<a>1</a>
<b>
<b1>
<b2>data</b2>
</b1>
</b>
<a>1</a>
<b>
<b1>
<b2>data2</b2>
</b1>
</b>
</parent>
期望的输出是:
<parent>
<data>
<a>1</a>
<b>
<b1>
<b2>data</b2>
</b1>
</b>
</data>
<data>
<a>2</a>
<b>
<b1>
<b2>data</b2>
</b1>
</b>
</data>
</parent>
我已经试过了,但是它会将 b 下的所有信息都更改为字符串...?
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="parent">
<parent>
<xsl:for-each-group select="*" group-starting-with="a">
<data>
<xsl:for-each select="current-group()">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:for-each>
</data>
</xsl:for-each-group>
</parent>
</xsl:template>
</xsl:stylesheet>
在分组内部,您似乎只想复制该组,例如
<xsl:template match="parent">
<parent>
<xsl:for-each-group select="*" group-starting-with="a">
<data>
<xsl:copy-of select="current-group()"/>
</data>
</xsl:for-each-group>
</parent>
</xsl:template>
或者使用基本模板设置身份转换并使用 <xsl:apply-templates select="current-group()"/>
而不是 xsl:copy-of
。