XML数据岛(XML Data Island)(只适用于ie)
在Microsoft Internet Explorer 5.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="cmt">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>标记创建了不同的行。