📄 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 + -