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