📄 creating and populating an html template.htm
字号:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<TITLE>生成并组装一个HTML模板</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="89"> </td>
<td width="53%" height="89">
<h2 align="center"><font face="宋体">生成并组装一个HTML模板</font></h2>
</td>
<td width="25%" height="89"><a name="top"></a></td>
</tr>
<tr>
<td colspan="3" height="2227">
<p> <span class="normal10"><br>
<span class="normal105">下一篇: <font face="Arial"><a href="Authoring Well-Formed HTML.htm" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/Authoring%20Well-Formed%20HTML.htm"><span class="normal105">书写一个格式良好的HTML</span></a></font>
<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">开始学习样式表</a>
</span></span></p>
<p><span class="normal105">为了显示,你可以通过HTML模板来使用Xsl归并简单规则的Xml数据. 考虑下面的样例:</span></p>
<pre class=clsCode><span 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></span></pre>
<p><span class="normal105">这个样例的数据是重复的有规则的,股票的元素结构是作为相同的子元素而被不断重复若干次。股票信息将会按照每种股票独占一行,每一行包括name,symbol,price的单元格的形式在一个表格中显示出来。首先生成一个HTMl元素模板用于显示这样一个表格。</span></p>
<pre class=clsCode><span class="normal105"><HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>Symbol</TD>
<TD>Name</TD>
<TD>Price</TD>
</TR>
<!-- repeat the following row for each stock -->
<TR>
<TD><!-- symbol goes here --></TD>
<TD><!-- name goes here --></TD>
<TD><!-- price goes here --></TD>
</TR>
</TABLE>
</BODY>
</HTML></span></pre>
<p><span class="normal105">为了使用从Xsl文件中得到的数据来组装这个模板,你可以人工的把注释部分用Xml文件中得到的数据填补。<font color="#000000">这恰是Xsl执行的基本过程</font>。从Xsl命名域而来的元素被用于定位Xml文件中的数据,以及把它插入HTML模板。</span></p>
<pre class=clsCode><span class="normal105"><HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>Symbol</TD>
<TD>Name</TD>
<TD>Price</TD>
</TR>
<b><xsl:for-each select="portfolio/stock"></b>
<TR>
<TD><b><xsl:value-of select="symbol"/></b></TD>
<TD><b><xsl:value-of select="name"/></b></TD>
<TD><b><xsl:value-of select="price"/></b></TD>
</TR>
<b></xsl:for-each></b>
</TABLE>
</BODY>
</HTML></span></pre>
<p> <span class="normal105"><b><xsl:for-each></b> 元素在Xml数据中定位了一系列元素(是指在“portfolio”元素中的“stock”族)并且为每一个“stock”元素都重复使用一份模板。由于这个样例由三个股票元素因此将产生三行数据。</span></p>
<p> <span class="normal105"><b>select</b>属性描述了如何在原文档里寻找一系列的元素。这个属性的语法会被Xsl
Pattern调用,它的工作方式很像导航一个用“/”号来选择相对于当前目录的子目录的文件系统。在一个Xsl样式表里,导航是从当前节点开始并且深入Xml的数据层次,选择所有符合模式的节点.在这个模式"portfolio/stock"是从文档的根开始并且深入"portfolio"元素选择三个"stock"字节点.</span></p>
<p><span class="normal105">对于大多数的样式表,使用元素名和"/"操作符在执行转换上具有相当强大的功能.其他Xsl
Pattern操作符的细节在<a
href="../../../msdn.microsoft.com/xml/xslguide/patterns-intro.asp" tppabs="http://msdn.microsoft.com/xml/xslguide/patterns-intro.asp">Introduction
to the Syntax of</a> 有描述.</span></p>
<p><span class="normal105">使用<b><xsl:for-each></b>元素,你能更加深入的选择每个"stock"元素的子元素.<b>
<xsl:value-of></b>元素选定一个子节点并且把子节点的文本内容插入模板<b>.在<xsl:value-of></b>元素的select属性中的模式不需要再次从文档根开始,但是必须是相对于在<xsl:for-each>中选定的元素.</span></p>
<p><span class="normal105">前面所述的模板能通过把它放入一个Xml文件中并且用<xsl:stylesheet>元素封闭起来的的方法来生成一个完整的样式表.</span></p>
<pre class=clsCode><span class="normal105"><b><span class="normal105"><?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/"></span></b>
<span class="normal105"><HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>Symbol</TD>
<TD>Name</TD>
<TD>Price</TD>
</TR>
<xsl:for-each select="portfolio/stock">
<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>
<b></xsl:template>
</xsl:stylesheet></b></span></span></pre>
<p><span class="normal105">由于一个Xsl样式表示本生也是一个Xm文件,因此文件应该从被推荐使用的Xml定义开始.<xsl:stylesheet>元素指定了这是一个样式表文件,并且提供了一个定义Xsl命名域的定位.Microsoft
Internet Explorer 5支持的Xsl命名域URL是http://www.w3.org/TR/ WD-xsl </span></p>
<p><span class="normal105">你也必须用<xsl:template match="/">元素把一个模板包裹起来以便能指定这个模板是符合Xml元文档的根(/).详细情况,参见<a
href="../../../msdn.microsoft.com/xml/xslguide/xsl-advanced.asp" tppabs="http://msdn.microsoft.com/xml/xslguide/xsl-advanced.asp">Advanced XSL Features</a>.</span></p>
<p><span class="normal105">整个文件必须是书写格式良好符合Xml规则的,包括由这个模板组成的HTML作为书写或者转换格式良好HTMl的补充说明,可以参见<a
href="../../../msdn.microsoft.com/xml/xslguide/xsl-wfhtml.asp" tppabs="http://msdn.microsoft.com/xml/xslguide/xsl-wfhtml.asp">Authoring Well-Formed
HTML</a>.</span></p>
<p><span class="normal105">用过XSl运行的Portfolio文档的最终结果如下:</span></p>
<pre class=clsCode><span class="normal105"><HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>Symbol</TD>
<TD>Name</TD>
<TD>Price</TD>
</TR>
<TR>
<TD>ZCXM</TD>
<TD>zacx corp</TD>
<TD>28.875</TD>
</TR>
<TR>
<TD>ZFFX</TD>
<TD>zaffymat inc</TD>
<TD>92.250</TD>
</TR>
<TR>
<TD>ZYSZ</TD>
<TD>zysmergy inc</TD>
<TD>20.313</TD>
</TR>
</TABLE>
</BODY>
</HTML></span></pre>
<p><span class="normal105">结果列举了在Xsl中基本转换机制是如何结合一个带有原文档数据的模板(在样式表中定义的)来生成一个最终的结果.</span></p>
<p><span class="normal105"><b>尝试!</b> 上面的样例工作于 <a
href="../../../msdn.microsoft.com/xml/samples/portfolio/portfolio.xml" tppabs="http://msdn.microsoft.com/xml/samples/portfolio/portfolio.xml">Portfolio
Sample</a>.</span></p>
<p><span class="normal105"><a href="../../../msdn.microsoft.com/xml/samples/portfolio/portfolio.zip" tppabs="http://msdn.microsoft.com/xml/samples/portfolio/portfolio.zip"><img
alt=Download border=0 height=20
src="Creating and Populating an HTML Template.files/icodownl.gif" tppabs="http://www.xml.org.cn:8188/application/XSL%20uguid/Creating%20and%20Populating%20an%20HTML%20Template.files/icodownl.gif" width=16> Download
this sample</a>. </span></p>
<p><span class="normal105"><b>注意:</b> 为了直接浏览XMl文件,样例也包括了一个指向样式表的样式表指令.有关细节参见<a
href="../../../msdn.microsoft.com/xml/xslguide/browsing-overview.asp" tppabs="http://msdn.microsoft.com/xml/xslguide/browsing-overview.asp">Browsing XML
Documents in Internet </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 + -