📄 parameterizing a style sheet.htm
字号:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<TITLE>参数化一张样式表 </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="22%" height="86"> </td>
<td width="53%" height="86">
<h2 align="center">参数化一张样式表<font face="宋体" lang="ZH-CN"> </font></h2>
</td>
<td width="25%" height="86"><a name="top"></a></td>
</tr>
<tr>
<td colspan="3" height="1326">
<p><span class="normal105">上一篇:<a href="Detecting and Handling XSL Errors.htm" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/Detecting%20and%20Handling%20XSL%20Errors.htm" class="normal105">侦测和处理XSL错误
</a><br>
下一篇:<a href="Using the Default XSL Style Sheet in Your Application.htm" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/Using%20the%20Default%20XSL%20Style%20Sheet%20in%20Your%20Application.htm" class="normal105">在你的应用中使用默认XSL样式表</a>
<br>
返 回: <a href="Using the XSL Processor.htm" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/Using%20the%20XSL%20Processor.htm" class="normal105"> 使用XSL处理程序
</a></span></p>
<p><span class="normal105"><font face="宋体">由于样式标本生就是一个Xml文档,因此一个样式表能和任何其他的Xml文档一样简单地通过XmlDOM来进行操纵.因此DOM成为一种能动态修改或者参数化一个样式表的方法.</font></span></p>
<p><span class="normal105"><font face="宋体">例如,这个例子使用了一个简单一致性转换来对股票信息进行排序和过滤.这个执行转换的样式表如下所示:</font></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">
<!-- Identity transformation template -->
<xsl:template>
<xsl:copy>
<xsl:apply-templates select="@* | * | comment() | pi() | text()"/>
</xsl:copy>
</xsl:template>
<!-- Filter out stocks not listed on the nasdaq stock exchange -->
<xsl:template match="stock[@exchange != 'nasdaq']" />
<!-- Sort stocks by price -->
<xsl:template match="portfolio">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="stock" order-by="price"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet></font></span></pre>
<p><span class="normal105"><font face="宋体"><b>注意</b> 这个样例为了易读性显示的时候带有额外的空格符.可执行版本中不会包含这同样多的空白符以防在转换的过程中空白符会在结果中累积.</font></span></p>
<p><span class="normal105"><font face="宋体"> 第二个模板中的<b>match</b> 属性描述了那种股票将会被过滤掉,<b>order-by</b>属性控制了残留的股票是如何排序的.通过改变这两种属性,相同的样式表能被用各种各样的转换.下面的脚本使用了<b>selectSingleNode</b>DOM方法来定位这两个属性以及修改他们的值.</font></span></p>
<pre class=clsCode><span class="normal105"><font face="Arial" class="normal105"><SCRIPT language="JavaScript">
function sort(filter, order)
{
filterField.value = filter;
sortField.value = order;
cell2.innerText = portfolio.documentElement.transformNode(sorter.XMLDocument);
}
</SCRIPT>
<SCRIPT language="JavaScript" for="window" event="onload">
filterField = sorter.XMLDocument.selectSingleNode("//@match[0]");
sortField = sorter.XMLDocument.selectSingleNode("//@order-by");
</SCRIPT></font></span></pre>
<p><span class="normal105"><font face="宋体">当页面被下载时,第二个脚本段被执行.这个脚本段定位了被描述的属性节点并且保存了他们最新的更动.当sort函数被调用的时候,过滤和排序的参数被放在这两个属性里并且使用被修改后的样式表来执行转换.</font></span></p>
<p><span class="normal105"><font face="宋体">当用户点击调用<b>sort</b>函数的链接的时候,排序被启动了.在这个例子中使用的不同的参数显示在下面.</font></span></p>
<pre class=clsCode><span class="normal105"><font color="#000000" face="Arial" class="normal105"><UL>
<LI><A href="javascript:sort('dont-match-anything', 'price')">
Sort by ascending price</A></LI>
<LI><A href="javascript:sort('dont-match-anything', '-price')">
Sort by descending price</A></LI>
<LI><A href="javascript:sort('dont-match-anything', 'symbol')">
Sort by symbol</A></LI>
<LI><A href="javascript:sort('stock[@exchange = \'nyse\']', 'symbol')">
Filter out NYSE stocks</A></LI>
<LI><A href="javascript:sort('stock[@exchange = \'nasdaq\']', 'symbol')">
Filter out NASDAQ stocks</A></LI>
</UL></font></span></pre>
<p><span class="normal105"><font face="宋体" class="normal105">注意 有一个在Xml文当中不能匹配任何东西的模式提供的过滤是失效的过滤.</font></span></p>
<p><span class="normal105"><font face="宋体"><b><span class="normal105">尝试!</span></b><span class="normal105">
上面的脚本是<a
href="../../../msdn.microsoft.com/xml/samples/portfolio/sort.htm" tppabs="http://msdn.microsoft.com/xml/samples/portfolio/sort.htm">XML Sorting Demo</a>
的一部分.</span></font></span></p>
<p><span class="normal105"><font face="宋体"><a href="../../../msdn.microsoft.com/xml/samples/portfolio/sort.zip" tppabs="http://msdn.microsoft.com/xml/samples/portfolio/sort.zip">
Download this sample</a>. </font></span></p>
<p class="normal10"><span class="normal10"><span class="normal9"> </span></span></p>
<p class="normal10"> </p>
</td>
</tr>
<tr>
<td colspan="3" height="92"><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 + -