0
我使用以下格式的XML文件。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樹中的節點轉換爲數組。提前致謝。
什麼都不會使用該模板工作,因爲它是不合法的XML更不用說XSLT。 「節點」的開放在哪裏!什麼是'id'?它們都不會出現在您的示例輸出中。哪裏需要遞歸? – EJP
我已更正我的帖子。如果xml節點包含子節點,則需要遞歸。 – user1961077
請提供您想要的*完整*輸出。當前提供的所需輸出僅包含層次結構前兩個級別的結果。爲了更好地理解問題,我們需要知道需要完整的輸出。 –