来源:作者:网友供稿 发布时间:2007-12-07 05:40:40


XML数据源对象是个ActiveX控件,允许您在XML文档和HTML页面之间操作数据。本文将向您展示怎样从各种XML数据源中提取数据,连同怎样使用JavaScript显示这些数据。
XML数据源对象DSO是个微软ActiveX控件,构建在微软IE4以后的版本上。这个对象允许您把一个外部的XML文档或嵌入HTML文档中的内容提取到HTML页面中。
您能够在一个Web页面中使用XML - DSO从一个外部XML文档中选取内容,从嵌入Web页面的XML中提取XML数据,然后使用JavaScript操作这些数据。然而,并不建议在Internet中使用这个对象,因为DSO只能工作在MSIE 4以上的浏览器中,因此这可能会带来一些兼容性问题。 所以,在企业内部网使用XML-DSO是很合适的。
开始
为了初始化XML - DSO对象,我们使用<OBJECT>标记。 用于XML-DSO的CLASSID是:
CLSID:550dda30-0541-11d2-9ca9-0060b0ec3d39
这ID唯一标识XML-DSO。使用下面的代码在一个Web页面中初始化这个控件:
<OBJECT ID="SomeID" CLASSID="CLSID:550dda30-0541-11d2-9ca9-0060b0ec3d39"></OBJECT>
虽然大部分对象需要许多参数和之相关联,但是XML-DSO无需任何参数。
使用一个XML数据岛析取数据
首先,通过使用<XML>标记包含一个XML数据岛。其次,给他分配一个ID,xmldb --以备以后使用。 数据实际上是使用HTML标记:<ALT>,<SPAN>,<DIV>等等提取的。代码列表1中的代码使用了<SPAN>标记。datasrc属性指定了您想从中提取数据的那个数据岛。datafld属性指定了您想要的数据的XML标记。所以,第一个<SPAN>提取名称,而第二<SPAN>提取性别。
代码列表1:
<!-- example1.htm --> <html> <head> <title>XML DSO-example1.htm</title> </head> <body bgcolor="#FFFFFF"> <xml id="xmldb"> <db> <member> <name>Premshree Pillai<name> <sex>male</sex> </member> <member> <name>Vinod</name> <sex>male</sex> </member> </db> </xml>
<span datasrc="http://www.knowsky.com/#xmldb" datafld="name"<</span> <br> <span datasrc="http://www.knowsky.com/#xmldb" datafld="sex"></span>
</body> </html> | 注意这段代码没有初始化一个XML-DSO对象。这是因为XML数据岛的使用中已隐式地创建了一个。输出应为: Premshree Pillai male
注意在XML数据岛中有两个<name>和<sex>标记。使用这个方法,您只能提取这些标记中的第一个实例。代码列表2中的代码使用<TABLE>标记提取任何的实例:
输出将是:
| Name |
Sex |
| Premshree Pillai |
male |
| Vinod |
male | 在代码列表2中,<TABLE>标记使用<TD>标记内的<DIV>标记提取数据。表格将自动重复<member>(<name>和<sex>的母标记)的每个实例。
代码列表2:
<!-- example2.htm --> <html> <head> <title>XML DSO-example2.htm</title> </head> <body bgcolor="#FFFFFF">
<xml id="xmldb"> <db> <member> <name>Premshree Pillai<name> <sex>male</sex> </member> <member> <name>Vinod</name> <sex>male</sex> </member> </db> </xml>
<table datasrc="http://www.knowsky.com/#xmldb" border="1"> <thead> <th>Name</th> <th>Sex</th> </thead> <tr> <td><div datafld="name"></div></td> <td><div datafld="sex"></div></td> </tr> </table>
</body> </html> |
|
还没有关于此文章的相关评论!