导航

[转]XML数据岛(Data Islands)

Posted on 2007-03-13 11:31  Jilimi  阅读(527)  评论(0编辑  收藏  举报
原文出自:http://lucky.diy.myrice.com/xml/xmldataisland.html

  在 Microsoft Internet Explorer5.0 里,你可以利用XML元素来创建数据岛,数据岛就是被HTML页面引用或包含的XML数据,XML数据可以包含在HTML文件内,也可以包含在某外部文件内。
  利用XML元素可以让我们免除了编写脚本的麻烦,如果用户由于安全的考虑禁止执行脚本的话,<object>标记将不能正常工作,那时因为,要初始化XML,必须编写脚本。

行内XML

行内XML包含在标记<XML>和</XML>之间,例如:

<XML ID="xmlData">
<?xml version="1.0" ?>
<trees>
<tree>
<name>小龙女</name>
<height unit="cm">180</height>
</tree>
<tree>
<name>大侠杨过</name>
<height unit="cm">178</height>
</tree>
</trees>
</XML>

引用XML文件

  使用<XML>标记的SRC属性来引用外部的XML文件,SRC属性可以引用本地的文件,也可以指定一个URL,URL指向外部的服务器,数据可以从数个不同的服务器综合在一起。下面例子的SRC属性引用到本地的XML文件。

  <XML ID="xmlData" SRC="xmlData.xml"></XML>

  其中的文件xmlData.xml里含有XML数据 。

  下面的例子引用一个远程服务器上的XML文件:

  <XML ID="xmlData" SRC="http://lucky.myrice.com/exam/xmlData.xml"></XML>

从数据岛读取数据

  从数据岛读取数据是利用<XML>元素的ID属性来完成的。通过能够接收数据的HTML标记(把数据绑定到该HTML),我们可以进行格式化或显示数据岛里的数据。下面的例子显示元素为<meeting>里各XML子元素的内容:

<HTML><HEAD><TITLE></TITLE></HEAD>
<BODY>
<XML ID="xmlMeetings">
<?xml version="1.0" ?>
<meetings>
<meeting>
<date>1/1/99</date>
<time>9:00</time>
<location>104号房间</location>
</meeting>
<meeting>
<date>2/1/99</date>
<time>13:00</time>
<location>34号房间</location>
</meeting>
<meeting>
<date>3/1/99</date>
<time>14:30</time>
<location>20号房间</location>
</meeting>
</meetings>
</XML>
<table datasrc="#xmlMeetings">
<tr>
<td><div datafld="date"></div></td>
<td><div datafld="time"></div></td>
<td><div datafld="location"></div></td>
</tr>
</table>
</BODY>
</HTML>

  标记<table>利用DATASRC属性引用行内XML,DATASRC属性实际上是通过在要处理的XML元素的ID属性的前面加上#来实现的。由于TD元素不能绑定数据,因此,必须找一个能够绑定数据的元素,在上面的例子里,我们用DIV元素的DADAFLD属性来绑定到要显示的XML元素,例如:DATAFLD="date"就把XML元素里<date>里的值绑定到了DIV。
  当XML元素被浏览器读入后,对每对<meeting></meeting>标记创建了不同的行。

  创建XML应用的步骤:

1. 创建一个新的 XML 文档
2. 把下面的代码拷贝粘贴到你的 XML 文档里。

<?xml version="1.0" encoding="gb2312" ?>
<世界国家介绍>
<国家信息>
<国家名称>中国</国家名称>
<人口>12亿</人口>
<首都>北京</首都>
<货币>人民币¥</货币>
</国家信息>
<国家信息>
<国家名称>美国</国家名称>
<人口>12万</人口>
<首都>华盛顿</首都>
<货币>美圆$</货币>
</国家信息>
<国家信息>
<国家名称>德国</国家名称>
<人口>900万</人口>
<首都>柏林</首都>
<货币>马克</货币>
</国家信息>
</世界国家介绍>

3. 世界国家介绍里可以添加任意多的条目.

4.利用数据岛访问XML里的数据。
要在你的HTML文档里应用XML文档,把XML数据岛加入到页面里

  <xml src="xml_application.xml" id="xmlapp" async="false"> </xml>

以上代码的作用:把XML文件"Xml_application.xml"调入所谓的"xmlapp"的数据岛里.
async="false" 属性的作用:确保任何HTML处理[解析]之前调入XML数据。

5.绑定XML文件到HTML页面。

绑定XML数据到表格(HTML),在表格数据里,添加数据源属性,并把数据项添加到<span>属性里的数据域:

<table datasrc="#xmlapp" width="100%" border="1">
<thead>
<th>国家信息</th>
<th>人口</th>
<th>首都</th>
<th>货币</th>
</thead>
<tr align="left">
<td><span datafld="国家名称"></span></td>
<td><span datafld="人口"></span></td>
<td><span datafld="首都"></span></td>
<td><span datafld="货币"></span></td>
</tr>

</table>

6.绑定XML数据到没有表格的HTML:
要显示XML数据,table 并不是必须的,你可以事业SPAN DIV等,利用 Datasource 和DataField 属性绑定数据。

<br>国家信息:
<span datasrc="#xmlapp" datafld="国家名称"></span>
<br>Artist:
<span datasrc="#xmlapp" datafld="人口"></span>
<br>Year:
<span datasrc="#xmlapp" datafld="首都"></span>