我是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