我是XSLT的新手,虽然我已经成功地完成了许多任务,但到目前为止......排序让我很难。对XML文件的节点进行排序
我需要一个小例子的帮助,以便我能更好地理解xsl:sort。
我的XML数据看起来如下:
<NewTerms>
<newTerm>Zebra</newTerm>
<newTerm>Horse</newTerm>
<newTerm>Cat</newTerm>
<newTerm>Lion</newTerm>
<newTerm>Jaguar</newTerm>
<newTerm>Cheetah</newTerm>
<newTerm>Deer</newTerm>
<newTerm>Buffalo</newTerm>
<newTerm>Dog</newTerm>
</NewTerms>
,我只是单纯的想按字母顺序从一个XSL表进行排序。 (这是不工作&)我写的XSL是如下:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" omit-xml-declaration="no"/>
<xsl:template match="NewTerms">
<xsl:apply-templates>
<xsl:sort select="newTerm"/>
</xsl:apply-templates>
</xsl:template>
</xsl:stylesheet>
我非常肯定,我还没有明白怎么的xsl:排序功能。如果你帮助我通过这个小例子...我想我会更好地理解它。
谢谢。
茉莉
谢谢你非常非常......有时候有一个具体的例子有助于理解比读理论概念更....所以,再次感谢您:) .. 。你是对的,我正在处理一个.xml输出。周末愉快! – Jasmin 2011-04-08 12:31:24
您能解释一下为什么我们应该使用“@ * | node()”...因为我的印象是我应该直接命名我想排序的节点名称。当然我错了,但想知道为什么? – Jasmin 2011-04-08 12:43:28
@Jasmin:你所做的只是复制整个XML结构,然后添加xsl:sort元素。这种复制机制被称为“身份变换”。请看看:http://www.w3.org/TR/xslt#copying这是非常有用的。 – Peter 2011-04-08 13:26:06