xslt复制元素和排序
可能重复:xslt复制元素和排序,xslt,sorting,copy,element,Xslt,Sorting,Copy,Element,可能重复: 我有一些xml: <?xml version="1.0" encoding="utf-8"?> <fruit namespace="basket"> <apple> <type>cox</type> <size>medium</size> </apple> <orange> <type>valencia</t
我有一些xml:
<?xml version="1.0" encoding="utf-8"?>
<fruit namespace="basket">
<apple>
<type>cox</type>
<size>medium</size>
</apple>
<orange>
<type>valencia</type>
<size>large</size>
</orange>
</fruit>
考克斯
中等的
巴伦西亚
大的
想象有更多的水果实例,订单可以是任何东西。我想使用xslt:
<?xml version="1.0" encoding="utf-8"?>
<fruit namespace="basket">
<apple>
<type>cooking</type>
<size>large</size>
</apple>
<apple>
<type>cox</type>
<size>medium</size>
</apple>
<orange>
<type>valencia</type>
<size>large</size>
</orange>
</fruit>
烹饪
大的
考克斯
中等的
巴伦西亚
大的
有人能告诉我xslt对此有何要求吗?如果您有xslt 2.0或允许使用EXSLT,那么这就是最好的选择 声明一个包含要添加的节点的变量,如下所示
<xsl:variable name="fruit">
<apple>
<type>cooking</type>
<size>large</size>
</apple>
</xsl:variable>
<xsl:template match="/*">
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:for-each select="*|exslt:node-set($fruit)">
<xsl:sort select="type" />
<xsl:copy-of select="current()" />
</xsl:for-each>
</xsl:copy>
</xsl:template>
如果您使用的是XSLT 2.0,那么可以删除变量周围的
exslt:node-set()
调用。否则请记住使用exclude result prefixes=“exslt”
保持输出整洁 这是家庭作业吗?这些数据似乎并不特别商业化!谢谢你的意见。非常感谢。我只能使用XSLT1.0。。。在该版本中是否可能出现类似的情况XSLT处理器是否具有EXSLT扩展?否。我发现很难复制a类型的元素,然后使用新元素对列表进行排序。