いくつかの要素を親の下部に移動し、属性「messageid」で並べ替えたい
これがXMLです
<Root>
<parent>
<child/>
<child2 messageid="8"/>
<child/>
<child2 messageid="5"/>
<child/>
<child2 messageid="7"/>
</parent>
</Root>
これが必要なXML出力です
<Root>
<parent>
<child/>
<child/>
<child/>
<child2 messageid="5"/>
<child2 messageid="7"/>
<child2 messageid="8"/>
</parent>
</Root>
xsl:copyを使用する必要があると思いますが、その方法がわかりません。助けてくれてありがとう
このようなものが機能するはずです:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="parent">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:apply-templates select="*[not(self::child2)]" />
<xsl:apply-templates select="child2">
<xsl:sort data-type="number" select="@messageid" />
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="*|node()">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:apply-templates select="*|node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加