日期:2014-05-17  浏览次数:20728 次

在 HTML中显示XML数据的策略

摘要: HTML 是目前常用的网页标识语言,而 XML 的优点在于能有效地存贮各种形式的数据,它克服了 HTML 表达能力差的缺点。本文对在一个 HTML 文档中插入 XML 数据,并在 IE5 浏览器中显示的两种常见的策略(数据绑定、 DOM )进行了深入的探讨。

关键词: HTML XML DOM DSO 数据绑定

  XML 的全名是 eXtenxible Markup Language (可以延伸或扩展的标记语言),它的语法类似 HTML ,都是用标签来描述数据。 HTML 的标签是固定的,我们只能使用、不能修改; XML 则不同,它没有预先定义好的标签可以使用,而是依据设计上的需要,自行定义标签。所以在电子商务的网络时代,用 XML 来组织数据,再用 HTML 页面来显示,将是设计网页的新方向。

  本文主要对两种在 HTML 中存贮并显示 XML 文档数据的策略(数据绑定、 DOM )进行探讨。

一、 数据绑定( Data Binding )技术
  数据绑定技术适用于结构规则的 XML 文档,它对 XML 文档的数据用类似于关系数据库的技术进行处理。

  例如,有一个关于产品目录的 XML 文档( product.xml )结构如下:

   ……

    <CATALOGUE>

     <PRODUCT InStock=”yes”>

      <PRODUCTID>00001</PRODUCTID>

      <PRODUCTNAME Supplier=”fuller”>

          football </PRODUCTNAME>

      <PRICE> 50</PRICE>

    ……

     </PRODUCT>

    ……

    </CATALOGUE>

  按下面介绍的两个步骤,可将 XML 文档和 HTML 文档绑定,并在 IE5 中显示 XML 文档的数据。

  1. 把一个 XML 文档连接到一个 HTML 文档中

  方法一:将整个 XML 文档插入至 HTML 文档中,其形式如下:

      <HTML>

      <HEAD>

       <TITLE> product decription</TITLE>

      </HEAD>

      <BODY>

       <XML ID=”product”>

       <?XML version=”1.0”?>

      …… ' 将以上的 product.xml 文档的内容插入至该处

       </XML>

      ……

      <BOLY>

      </HTML>

   方法二:只将一个对 XML 文档的引用插入至 HTML 文档中,其形式如下:

      <HTML>

      <HEAD>

       <TITLE> product decription</TITLE>

      </HEAD>

      <BODY>

       <XML ID=”product” SRC=”product.xml”> </XML> ' 用 src 指出引用的 XML 文档源

       ……

      </BODY>

      </HTML>

   方法二的好处在于:它将 XML 文档的数据和 HTML 的显示格式分开,便于用户进行维护。而且,多个 HTML 文档可以共享一个 XML 文档。

  当 IE5 打开一个 HTML 文档时,其内置的 XML 处理器会读取和分析页面中已连接的 XML 文档,然后产生一个数据源对象( DSO ,全称是 Data Source Object ),以便存贮和读取数据。 DSO 在存贮 XML 文档中的数据时,会将元素解释成记录和字段的集合,并自动抽取 XML 元素的数据和处理所有的显示细节。

  2 .将标准的 HTML 元素(例如 TABLE 、 SPAN 等)和 XML 元素绑定

  方法一:表数据绑定,即将 HTML 的 TABLE 元素和 XML 数据绑定,以便在 IE5 中用表格的形式一次性地显示整个 XML 文档的数据。

  其形式如下:

     ……

     <TABLE DATASRC=”#PRODUCT” BORDER=”1” ……>

      <THEAD>

       <TH> productid</TH>

       ……

      </TH>

     </THEAD> ' 显示表格的标题

     <TR ALIGN=”center”>

      <TD><SPAN DATAFLD=”productid”></SPAN></TD> ' 在表格单元格中显示 productid 的内容

      ……

     </TR>

    </TABLE>

     ……

  方法二:单一记录数据绑定,即将 HTML 元素(如 SPAN 、 BUTTON 或 LABEL 等非表格元素)和 XML 文档中的一个单一的字段进行绑定,以便在 IE5 中一次只显示一条记录的内容。此时,为了浏览方便,最好在页面中增加关于记录的导航按钮。

  其形式如下:

   ……

   <SPAN STYLE=”font-style:italic”> ProductID</SPAN> ' 显示标题

  <SPAN DATASRC=”#product” DATAFLD=”productid”

     STYLE=”font-weight:bold”></SPAN> ' 显示 productid 的内容

  ……

  <BUTTON ONLICK=”product.recordset.moveprevious();

            if (product.recordset.bof)

            product.recordset.movenext()”>

            &lt;back;

  </BUTTON> ' 产生一个向前导航的按钮

  ……

  注意:当用数据绑定技术显示 XML 文档数据时,如果 XML 元素中有参数,则 DSO 会将该元素处理成层次型的记录。例如: product.xml 文档中的“ PRODUCTNAME ”元素有一个“ Supplier ”参数,则 DSO 会将该元素处理成下面的形式:

  <PRODUCTNAME>

   <Supplier> fuller</Supplier>

   <$TEXT>football</$TEXT>

  </PRODUCTNAME>

  此时,必须用 $TEXT 作为字段名来读取“ football ”数据,其形式如下:

  ……

    <TABLE DATASRC=”#product” DATAFLD=”productname”>



    <TR>

      <TD><SPAN DATAFLD=”$TEXT”></SPAN></TD>
<