?? sorting xml.htm
字號:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<TITLE>為Xml數據分類排序</TITLE>
<style type="text/css">
<!--
.normal10 { font-size: 11pt}
.normal9 { font-size: 9pt}
a{ text-decoration: none }
a:hover{ color:Red;text-decoration:underline }
a {
font-size:11pt;
COLOR: cornflowerblue;
FONT-FAMILY: "新細明體", "宋體";
FONT-WEIGHT: bold
}
.normal105 { font-size: 11pt}
.p { font-size: 11pt}
-->
</style>
<link rel="stylesheet" href="../../Global.css" tppabs="http://www.xml.org.cn:8188/Global.css"></HEAD>
<BODY>
<p ALIGN="CENTER" class="normal105">[<a href="../../default.asp.htm" tppabs="http://www.xml.org.cn:8188/default.asp" target="_parent">返回首頁</a>][<font face="宋體" lang="ZH-CN"><a href="../application.htm" tppabs="http://www.xml.org.cn:8188/application/application.htm" target="_parent">返回應用</a></font>]</p>
<table width="85%" border="0" align="center">
<tr>
<td width="14%" height="64"> </td>
<td width="71%" height="64">
<h2 align="center">為Xml數據分類排序</h2>
</td>
<td width="15%" height="64"><a name="top"></a></td>
</tr>
<tr>
<td colspan="3" height="409">
<p><span class="normal105">上一篇:<a href="Accessing and Outputting Attributes.htm" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/Accessing%20and%20Outputting%20Attributes.htm" class="normal105">訪問和輸出屬性</a><br>
下一篇:<a href="Conditional Templates.htm" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/Conditional%20Templates.htm" class="normal105">有條件的模板</a>
<br>
返 回 :<a href="Getting Started with XSL.htm" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/Getting%20Started%20with%20XSL.htm" class="normal105">開始學習樣式表Xml</a></span></p>
<p><span class="normal105">當使用<b><xsl:for-each></b>元素來顯示一個重復的數據結構的時候,<font color="#000000">在<b><xsl:for-each></b>中被選擇的項被處理的順序是它們在源文檔中出現的順序.</font><b>order-by</b>屬性允<font color="#000000">許你在遍歷模板之前對</font>你所選擇的項目排序.</span></p>
<p><span class="normal105"><b>order-by</b>屬性的語法是一個Xsl模式,它是一個指向在元文檔中用于排序的鍵.</span></p>
<p><span class="normal105">給出下面的Xml數據:</span></p>
<pre class=clsCode><span class="normal105"><font face="Arial" class="normal105"><?xml version="1.0"?>
<portfolio xmlns:dt="urn:schemas-microsoft-com:datatypes">
<stock exchange="nyse">
<name>zacx corp</name>
<symbol>ZCXM</symbol>
<price dt:dt="number">28.875</price>
</stock>
<stock exchange="nasdaq">
<name>zaffymat inc</name>
<symbol>ZFFX</symbol>
<price dt:dt="number">92.250</price>
</stock>
<stock exchange="nasdaq">
<name>zysmergy inc</name>
<symbol>ZYSZ</symbol>
<price dt:dt="number">20.313</price>
</stock>
</portfolio></font></span></pre>
<p><span class="normal105"><b><span class="normal105"><xsl:for-each></span></b><span class="normal105">
中可以加入一個 order-by="price" 屬性來對股票的價格排序.</span></span></p>
<pre class=clsCode><span class="normal105"><font face="Arial" class="normal105"><?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>Symbol</TD>
<TD>Name</TD>
<TD>Price</TD>
</TR>
<xsl:for-each select="portfolio/stock" <b>order-by="price"></b>
<TR>
<TD><xsl:value-of select="symbol"/></TD>
<TD><xsl:value-of select="name"/></TD>
<TD><xsl:value-of select="price"/></TD>
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet></font></span></pre>
<p><span class="normal105">通過<b>order-by</b> 模式指定的節點的值會按照他自己的數據類型來排序.既然由于price的數據類型是通過<b>dt:dt</b>屬性申明為數值型的,因此將會按照數值方式來排序.沒有類型的值將按照字符串類型比較排序.</span></p>
<p><span class="normal105">在排序鍵之前可以添加一個"-"號來指明是按照將需排列.同樣的,"+"號可以非強制地用于明確指定是按照升序排列(加號為默認值)</span></p>
<p> <span class="normal105"><b>order-by</b> 在<b><xsl:apply-templates></b>元素上也是可用的.</span></p>
<p><span class="normal105"><b>嘗試!</b> 點擊<a
href="../../../msdn.microsoft.com/xml/samples/portfolio/portfolio-sort1.xml" tppabs="http://msdn.microsoft.com/xml/samples/portfolio/portfolio-sort1.xml">Portfolio
Sample (Ascending Sort)</a> or <a
href="../../../msdn.microsoft.com/xml/samples/portfolio/portfolio-sort2.xml" tppabs="http://msdn.microsoft.com/xml/samples/portfolio/portfolio-sort2.xml">Portfolio
Sample (Descending Sort)</a> (order-by="-price") 你可以瀏覽上面的樣例</span></p>
<p><span class="normal105"><a
href="../../../msdn.microsoft.com/xml/samples/portfolio/portfolio-sort.zip" tppabs="http://msdn.microsoft.com/xml/samples/portfolio/portfolio-sort.zip"><img
alt=Download border=0 height=20 src="Sorting XML.files/icodownl.gif" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/Sorting%20XML.files/icodownl.gif" width=16>
Download these samples</a>. </span></p>
<p><span class="normal105"><b>注意:</b> 當前的W3c Xsl工作草案描述了一個不同的排序語法,使用了<b><xsl:sort></b>元素
.Microsoft 計劃在將來的發布版本中采用這個語法</span></p>
<h2><span class="normal105">更多的關于Sort鍵的知識</span></h2>
<p><span class="normal105">多項排序鍵可以通過用分號隔開的排序鍵的方式來制定排序鍵.如果第一個鍵不能明確的對元素排序,那下一個鍵可以用于解決沖突!這里是一個較為復雜的排序鍵樣例</span></p>
<pre class=clsCode><span class="normal105"><font face="Arial">order-by="BIDDER; - number(PRICE)"</font></span></pre>
<p><span class="normal105"> 當元文檔沒有數據類型信息被定義的時候,<b>number</b> 和 <b>date</b>
方法<font color="#000000"> <font face="宋體">能夠用于獲得按數據類型方式的排序.</font></font><font face="宋體" color="#FF3366">
</font>上面這個樣例為了排序的目的而按照數值方式計算<b>PRICE</b>的值.</span></p>
<p><span class="normal105"><b>嘗試!</b> 上面的排序鍵在 <a
href="../../../msdn.microsoft.com/xml/samples/multiple/multiple.htm" tppabs="http://msdn.microsoft.com/xml/samples/multiple/multiple.htm">XML/XSL Viewer
</a>s的"sort-bidder-price-.xsl"中被用到.</span></p>
<p><span class="normal105"><a href="../../../msdn.microsoft.com/xml/samples/multiple/multiple.zip" tppabs="http://msdn.microsoft.com/xml/samples/multiple/multiple.zip"><img
alt=Download border=0 height=20 src="Sorting XML.files/icodownl.gif" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/Sorting%20XML.files/icodownl.gif" width=16>
Download this sample</a>. </span></p>
</td>
</tr>
<tr>
<td colspan="3" height="2"><font face="宋體" lang="ZH-CN" size=3> </font> <rev></rev><font face="宋體" lang="ZH-CN" size=3></font>
<hr size="1">
<p align="center"><font face="宋體" lang="ZH-CN">[<a href="#top">返回標題</a>][<a href="../application.htm" tppabs="http://www.xml.org.cn:8188/application/application.htm" target="_parent">返回應用</a>][<a href="../../default.asp.htm" tppabs="http://www.xml.org.cn:8188/default.asp" target="_parent">返回首頁</a>][<a href="mailto:xmlteam@egroups.com">歡迎投稿</a>]</font></p>
<p align="center">最后更新:1999年9月15日<br>
<font color="#FF0033" size="-1">本站點所刊文章版權,均歸本站點所有。署名作者擁有其著作權。<br>
未經</font><font color="#FF0033"><a href="mailto:xmlteam@egroups.com"><font color="#6666FF" size="-1">允許</font></a></font><font color="#FF0033" size="-1">,不得隨意轉載,違者必究!!</font>
</p>
</td>
</tr>
</table>
<h2 ALIGN="CENTER"> </h2>
<FONT FACE="宋體" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"> </P>
</FONT><FONT FACE="宋體" LANG="ZH-CN" SIZE=3></FONT>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -