<Item>
<Description>Dog</Description>
</Item>
<Item>
<Description>Cat</Description>
</Item>
<Item>
<Description>Turtle</Description>
</Item>
<Item>
<Description>Hedgehog</Description>
</Item>
不排序,但我需要刺猬总是在狗下
使用 xsl 可以做到这一点吗?
不确定您真正想要的输出是什么,但这总是将 Item 节点按狗、刺猬和其他节点的顺序排列。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="Items">
<xsl:copy>
<xsl:apply-templates select="Item[Description='Dog']"/>
<xsl:apply-templates select="Item[Description='Hedgehog']"/>
<xsl:apply-templates select="Item[Description!='Hedgehog' and Description!='Dog']"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Item">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
你可以在这里尝试一下:https://xsltfiddle.liberty-development.net/gWEamLr