我有以下格式的 XML 文件。
<Main>
<root>
<group firstname="daniel" secondname="creig">
<a firstname="tin" secondname="tao"/>
<b firstname="bella" secondname="james">
<c firstname="khadhar" secondname="abdul">
<d firstname="xiang" secondname="tin"/>
</c>
</b>
</group>
</root>
</Main>
我正在尝试获得如下所示的输出。
<members>
<member><id>group</id><firstname>daniel</firstname><secondname>creig</secondname></member>
<member><id>a</id><firstname>tin</firstname><secondname>tao</secondname></member>
<member><id>b</id><firstname>bella</firstname><secondname>james</secondname></member>
<member><id>c</id><firstname>khadhar</firstname><secondname>abdul</secondname></member>
<member><id>d</id><firstname>xiang</firstname><secondname>tin</secondname></member>
</members>
到目前为止,我的 XSL 将看起来像这样。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- Elements Section -->
<xsl:template match="/*/root/*">
<member>
<id>
<xsl:value-of select="local-name()" />
</id>
<attr>
<xsl:apply-templates select="@*" />
</attr>
</member>
</xsl:template>
<xsl:template match="@*">
<xsl:element name="{local-name()}">
<xsl:value-of select="(.)" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
我需要的只是将任何深度的 XML 树中的节点转换为数组。提前致谢。