⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xsl.htm

📁 这是一本关于XML的学习的书
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<TITLE>XSL和XML实例</TITLE>
<style type="text/css">
<!--
.normal10 {  font-size: 11pt}
.normal9 {  font-size: 9pt}
p{  font-size: 9pt}
a{ text-decoration: none }
a:hover{ color:Red;text-decoration:underline }
a {
font-size:9pt;   
COLOR: cornflowerblue;
FONT-FAMILY: "新细明体", "宋体";
FONT-WEIGHT: bold
 }

-->
</style>
<link rel="stylesheet" href="../../Global.css" tppabs="http://www.xml.org.cn:8188/Global.css"></HEAD>
<BODY>

<p ALIGN="CENTER">[<a href="../../default.asp.htm" tppabs="http://www.xml.org.cn:8188/default.asp" target="_parent">返回首页</a>][<a href="../application.htm" tppabs="http://www.xml.org.cn:8188/application/application.htm" target="_parent">返回应用</a>]</p>
<table width="85%" border="0" align="center" height="3644">
  <tr> 
    <td width="22%" height="20">&nbsp;</td>
    <td width="53%" height="20"> 
      <h2 align="center"><font color="#6633FF"><b><font color="#3333FF">用XSL表现你的XML</font></b></font></h2>
    </td>
    <td width="25%" height="20"><a name="top"></a></td>
  </tr>
  <tr> 
    <td colspan="3" height="2"> 
      <div align="right">
        <p align="center"> 作者:<a href="mailto:onecenter@yahoo.com">孙一中</a><br>
          <br>
          <font color="#FF0033">下载源代码:<a href="XSLDEMO.zip" tppabs="http://www.xml.org.cn:8188/application/XSL/XSLDEMO.zip">XSLDEMO.ZIP</a> 
          </font>(3.41k)</p>
      </div>
    </td>
  </tr>
  <tr> 
    <td colspan="3" height="3280"><font face="宋体" lang="ZH-CN" size=3> </font> 
      <rev></rev> 
      <p><font lang="ZH-CN"><span class="normal105">我们已经知道,XML文件用来存放数据,而如何表现XML则要借助其他的手段。我们现在推荐您使用IE5.0。如果您在IE5<span class="normal105">.0中直接打开</span></span></font><span class="normal105"><span class="normal105"> 
        一个XML文件,那</span></span><span class="normal105">么你看到的只是XML的源代码;要进一步以更灵活更丰富的形式来表示,就要借助于CSS或XSL。如何使用CSS,建议阅读<a href="../../../www.w3.org/TR/1998/REC-CSS2-19980512/index.htm" tppabs="http://www.w3.org/TR/1998/REC-CSS2-19980512/">CSS2规范(W3C建议)</a> 
        . 这里我们想介绍如何用XSL来表现您的XML.</span></p>
      <p><span class="normal105">首先我们给出一个XML文件(stock-sorter.xml)的简单例子:<br>
        <font face="宋体" lang="ZH-CN">&lt;?xml:stylesheet type="text/xsl" href="simple.xsl"?&gt;<br>
        &lt;portfolio xmlns="x-schema:portfolio-schema.xml"&gt;<br>
        &lt;description&gt;Technology Stock Index&lt;/description&gt;<br>
        &lt;date&gt;1999-08-13T15:56:00&lt;/date&gt;<br>
        <br>
        &lt;stock&gt;<br>
        &lt;symbol&gt;AOL&lt;/symbol&gt;<br>
        &lt;name&gt;america online inc&lt;/name&gt;<br>
        &lt;price&gt;92.250&lt;/price&gt;<br>
        &lt;change&gt;-1.125&lt;/change&gt;<br>
        &lt;percent&gt;-1.20&lt;/percent&gt;<br>
        &lt;volume&gt;4.99&lt;/volume&gt;<br>
        &lt;/stock&gt;<br>
        <br>
        &lt;stock&gt;<br>
        &lt;symbol&gt;CSCO&lt;/symbol&gt;<br>
        &lt;name&gt;cisco sys inc&lt;/name&gt;<br>
        &lt;price&gt;50.688&lt;/price&gt;<br>
        &lt;change&gt;-1.688&lt;/change&gt;<br>
        &lt;percent&gt;-3.22&lt;/percent&gt;<br>
        &lt;volume&gt;18.23&lt;/volume&gt;<br>
        &lt;/stock&gt;<br>
        <br>
        &lt;stock&gt;<br>
        &lt;symbol&gt;DELL&lt;/symbol&gt;<br>
        &lt;name&gt;dell computer corp&lt;/name&gt;<br>
        &lt;price&gt;53.000&lt;/price&gt;<br>
        &lt;change&gt;-3.063&lt;/change&gt;<br>
        &lt;percent&gt;-5.46&lt;/percent&gt;<br>
        &lt;volume&gt;32.95&lt;/volume&gt;<br>
        &lt;/stock&gt;<br>
        ...... <br>
        <br>
        &lt;/portfolio&gt; <br>
        <br>
        </font>其中元素portfolio是在portfolio文件中定义的:<br>
        <br>
        <font face="Albertus (W1)">&lt;?xml version="1.0" ?&gt;<br>
        &lt;Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"&gt;<br>
        &lt;ElementType name="date" dt:type="dateTime"/&gt;<br>
        &lt;ElementType name="description"/&gt;<br>
        &lt;ElementType name="symbol"/&gt;<br>
        &lt;ElementType name="name"/&gt;<br>
        &lt;ElementType name="price" dt:type="fixed.14.4"/&gt;<br>
        &lt;ElementType name="change" dt:type="fixed.14.4"/&gt;<br>
        &lt;ElementType name="percent" dt:type="fixed.14.4"/&gt;<br>
        &lt;ElementType name="volume" dt:type="fixed.14.4"/&gt;<br>
        &lt;ElementType name="portfolio" content="eltOnly"&gt;<br>
        &lt;group minOccurs="0" maxOccurs="1"&gt;<br>
        &lt;element type="description" /&gt;<br>
        &lt;/group&gt;<br>
        &lt;group minOccurs="0" maxOccurs="1"&gt;<br>
        &lt;element type="date" /&gt;<br>
        &lt;/group&gt;<br>
        &lt;group minOccurs="1" maxOccurs="1"&gt;<br>
        &lt;element type="stock" /&gt;<br>
        &lt;/group&gt;<br>
        &lt;/ElementType&gt;<br>
        &lt;ElementType name="stock" content="eltOnly"&gt;<br>
        &lt;element type="symbol" /&gt;<br>
        &lt;element type="name" /&gt;<br>
        &lt;element type="price" /&gt;<br>
        &lt;element type="change" /&gt;<br>
        &lt;element type="percent" /&gt;<br>
        &lt;element type="volume" /&gt;<br>
        &lt;/ElementType&gt;<br>
        &lt;/Schema&gt;</font></span></p>
      <blockquote> 
        <blockquote> 
          <p>&nbsp;</p>
        </blockquote>
      </blockquote>
      <p><span class="normal105"><font face="宋体" lang="ZH-CN">在stock-sorter.xml文件中第一行的处理指令(Process 
        Instruction): &lt;?xml:stylesheet type="text/xsl" href="simple.xsl"?&gt; 
        表示由simple.xsl来规定XML的表现方式。当我们在IE中打开该XML时,浏览器根据其中所规定的XSL的位置去得到该XSL,并通过XSL 
        处理器将XML和XSL结合成为XSL定义的输出形式。这里我们将其输出形式定为HTML格式,是为了方便在浏览器中直接显示。好,让我们来看简单的XSL文件是怎样写的:<br>
        </font></span></p>
      <p align="JUSTIFY"> </p>
      <p><span class="normal105">Simple.xsl:<br>
        <br>
        <font face="宋体" lang="ZH-CN">&lt;?xml version="1.0"&gt;<br>
        &lt;HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl"&gt;<br>
        &lt;BODY STYLE="font-family:Arial, helvetica, sans-serif; font-size:9.5pt;background-color:#FEEEEE"&gt;<br>
        &lt;xsl:for-each select="portfolio/stock"&gt;<br>
        &lt;DIV STYLE="background-color:teal; color:white; padding:4px"&gt;<br>
        &lt;SPAN STYLE="font-weight:bold; color:white"&gt;<br>
        &lt;xsl:value-of select="name"/&gt;&lt;/SPAN&gt;<br>
        - &lt;xsl:value-of select="price"/&gt;<br>
        &lt;/DIV&gt;<br>
        &lt;DIV STYLE="margin-left:10px; margin-bottom:1em; font-size:9pt"&gt;<br>
        &lt;xsl:value-of select="description"/&gt;<br>
        &lt;SPAN STYLE="font-style:italic"&gt;<br>
        (change:&lt;xsl:value-of select="change"/&gt; )<br>
        &lt;/SPAN&gt;<br>
        &lt;/DIV&gt;<br>
        &lt;/xsl:for-each&gt;<br>
        &lt;/BODY&gt;<br>
        &lt;/HTML&gt;</font></span></p>
      <p><span class="normal105"><font face="宋体">以上的代码很容易理解,关键是采用选择语句(for-each 
        select)在XML树结构中进行选择,并把得到的结果树(Result Tree)包容于HTML中(value-of select).其实这只是简单的XSL语句.XSL的脚本语言叫做ECMAScript,它是在JavaScript的基础上发展的。如果我们要改变</font><font face="宋体" lang="ZH-CN">stock-sorter.xml的表现,只要在stlye 
        sheet的href中指定另外的XSL文件。<br>
        <br>
        在<a href="../../../www.w3.org/TR/WD-xsl" tppabs="http://www.w3.org/TR/WD-xsl">XSL的规范</a>定义了XML的匹配模板(Template),设置匹配字符,则处理时将从XML的根节点(Root 
        Node)搜索匹配的节点.如:&lt;xsl: template match=&quot;/&quot;&gt;.通常构成HTML格式的模板,它可以只是XSL的一部分。您还可以写XSL的脚本,举个示例:</font></span></p>
      <p><span class="normal105"><font face="宋体" lang="ZH-CN">&lt;xsl:script&gt;&lt;![CDATA[<br>
        function Demo(node)<br>
        {<br>
        total = 0;<br>
        volumes = node.selectNodes("/portfolio/stock/volume");<br>
        for (v = volumes.nextNode(); v; v = volumes.nextNode())<br>
        total += v.nodeTypedValue;<br>
        return formatNumber(total, "#") + " million shares";<br>
        }<br>
        ]]&gt;&lt;/xsl:script&gt;</font></span></p>
      <p><span class="normal105"><font face="宋体">还可以加XSL的注释,如:<br>
        <br>
        </font><font face="宋体" lang="ZH-CN">&lt;xsl:comment&gt;&lt;![CDATA[<br>
        function sort(field)<br>
        {<br>
        sortField.value = field;<br>
        listing.innerHTML = source.documentElement.transformNode(stylesheet);<br>
        }<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -