同じタイプの入れ子になった要素が多数あるXMLファイルがあります。私は名前属性値でそれらを並べ替えることができるようにしたい。XSLスタイルシートを使用した名前属性による並べ替え
<configurations>
<configuration xmlns="http://locomotive/bypass/docx" name="managed">
<configuration name="tracking-component" class="singular">
<configuration name="data-component"/>
<configuration name="modal"/>
<configuration name="node"/>
</configuration>
<configuration name="network-component">
<configuration name="disks"/>
<configuration name="cycles"/>
</configuration>
</configuration>
</configurations>
私はこのスタイルシートを試してみましたが、それは何も出力しませんでした:
ここでの目標は、次のようにソートする上記のファイルを持っているファイル<configurations>
<configuration xmlns="http://locomotive/bypass/docx" name="managed">
<configuration name="tracking-component">
<configuration name="disks"/>
<configuration name="cycles"/>
</configuration>
<configuration name="network-component" class="singular">
<configuration name="data-component"/>
<configuration name="node"/>
<configuration name="modal"/>
</configuration>
</configuration>
</configurations>
の一例ですここで
<xsl:stylesheet version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//*[local-name() = 'Configuration']">
<xsl:copy>
<xsl:apply-templates select="Configuration/@name">
<xsl:sort select="."/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
は私が作るしようとしているものです:
<configurations>
<configuration xmlns="http://locomotive/bypass/docx" name="managed">
<configuration name="network" class="singular">
<configuration name="data-component"/>
<configuration name="modal"/>
<configuration name="node"/>
</configuration>
<configuration name="tracking-component">
<configuration name="cycles"/>
<configuration name="disks"/>
</configuration>
</configuration>
</configurations>
network-component
属性が、右のアルファベット順にtracking-component
属性の前に表示されるようになりました。 network-component
とtracking-component
の構成属性もアルファベット順にソートされています。
助けてください。
私は処理命令 ''を追加することでXMLセクションの字下げを改善し、XSLTセクションを墨塗りしました。 –
zx485