Web设计中如何使用XML数据

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="#xmldb" datafld="name"<</span>
<br>
<span datasrc="#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="#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>

使用外部XML文件提取数据

为了使用XML-DSO加载一个外部XML文件,你必须显式的包含这个对象并且使用一些JavaScript。

首先创建一个XML-DSO对象,使用ID myXML。添加宽度和高度属性到<OBJECT>标记中,然后设置它们的值为0。这保证XML-DSO对象不会占据你的Web页面的任何空间。

其次,使用datasrc创建一个象myXML一样的表--类似于代码列表2中一样。代码使用<DIV>标记(在TD标记之)提取数据,使用datafld作为第一栏的信息,并且使用URL作为第二栏。添加<SCRIPT>标记,因为在这里,外部的XML使用Java脚本显式地声明你想要加载的XML文件。

设置变量xmlDso为myXML.XMLDocument。myXML引用你已经创建的对象。接下来,使用XML-DSO的load()方法加载example3.xml。文件example3.xml连接到对象myXML上。

<!-- example3.xml -->
<?xml version="1.0" ?>
<ticker>
<item>
<message>JavaScript Ticker using XML DSO</message>
<URL>http://someURL.com</URL>
</item>
</ticker>
现在,研究一下下面的HTML页面:

<!-- example3.htm -->
<html>
<head>
<title>XML DSO-example3.htm</title>
<script language="JavaScript">
function load() {
var xmlDso=myXML.XMLDocument;
xmlDso.load("example3.xml");
}
</script>
</head>
<body bgcolor="#FFFFFF" onLoad="load()">

<object id="myXML" CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39"
width="0" height="0"></object>

<table datasrc="#myXML" border="1">
<thead>
<th>Message</th>
<th>URL</th>
</thead>
<tr>
<td><div datafld="message"></div></td>
<td><div datafld="URL"></div></td>
</tr>
</table>

</body>
</html>

输出应是:

Message URL
JavaScript Ticker using XML DSO http://someURL.com

上面的脚本非常特殊化。下面给出一个更一般的脚本:

<script language="JavaScript">
var xmlDso;
function load(xmlFile, objName) {
eval(''xmlDso=''+objName+''.XMLDocument'');
xmlDso.load(xmlFile);
}
</script>
Now, to load any XML file use:
load("SomeXMLFile.xml","anyXmlDsoObject");(csdn) (出处:PConline)

(0)

相关推荐

  • Web设计中如何使用XML数据

    XML数据源对象是一个ActiveX控件,允许你在XML文件和HTML页面之间操作数据.本文将向你展示如何从各种XML数据源中提取数据,以及如何使用JavaScript显示这些数据. XML数据源对象DSO是一个微软ActiveX控件,构建在微软IE4以后的版本上.这个对象允许你把一个外部的XML文件或者嵌入HTML文件中的内容提取到HTML页面中. 你可以在一个Web页面中使用XML - DSO从一个外部XML文件中选取内容,从嵌入Web页面的XML中提取XML数据,然后使用JavaScrip

  • Web设计中如何使用XML数据源对象

    XML数据源对象是一个ActiveX控件,允许你在XML文件和HTML页面之间操作数据.本文将向你展示如何从各种XML数据源中提取数据,以及如何使用JavaScript显示这些数据. XML数据源对象DSO是一个微软ActiveX控件,构建在微软IE4以后的版本上.这个对象允许你把一个外部的XML文件或者嵌入HTML文件中的内容提取到HTML页面中. 你可以在一个Web页面中使用XML - DSO从一个外部XML文件中选取内容,从嵌入Web页面的XML中提取XML数据,然后使用JavaScrip

  • 怎样才能用js生成xmldom对象,并且在firefox中也实现xml数据岛?

    一般来说,xml文件都是从外部载入的,那么我们如何只用js生成xml对象呢?下面的程序实现了这一点,只需要输入字符串形式的xml数据,就可以转换为xml对象,并且兼容firefox. 用这种方法,我们也可以在firefox中实现xml数据岛,即用xmp标签来装载xml字符串,然后调用createXml函数来生成xml.    由于firefox中不支持节点的.xml属性,所以需要给它添加该属性,使之与IE一致 复制代码 代码如下: <body> <xmp id=x1>     &l

  • 使用SQL查询DB2 9中的XML数据

    正在看的db2教程是:使用SQL查询DB2 9中的XML数据. 虽然 DB2 的混合体系结构与之前的版本有很大的不同,但是要利用它的新 XML 功能并不难.如果您已经熟悉 SQL,那么很快就可以将这方面的技能转化到对存储在 DB2 中的本地 XML 数据的处理上.通过本文就可以知道如何实现这一点. DB2 Viper(就是DB2 9)中的 XML 特性包括新的存储管理.新的索引技术以及对查询语言的支持.在本文中,学习如何使用 SQL 或带 XML 扩展的 SQL(SQL/XML)查询 DB2 X

  • Python 3.x基于Xml数据的Http请求方法

    1. 前言 由于公司的一个项目是基于B/S架构与WEB服务通信,使用XML数据作为通信数据,在添加新功能时,WEB端与客户端分别由不同的部门负责,所以在WEB端功能实现过程中,需要自己发起请求测试,于是便选择了使用Python编写此脚本.另外由于此脚本最开始希望能在以后发展成具有压力测试的功能,所以除了基本的访问之外,添加了多线程请求. 整个脚本主要涉及到的关于Python的知识点包括: 基于urllib.request的Http访问 多线程 类与方法的定义 全局变量的定义与使用 文件的读取与写

  • XML指南——XML数据岛

    使用IE5.0或者更高的版本,XML数据可以以数据岛的形式嵌入HTML页面.  在HTML页面中嵌入XML数据  使用非官方标准的<xml>标记可以将XML数据嵌入到HTML页面中.  XML数据可以象下面的例子那样嵌入HTML页面:  <xml id="note">    <note>    <to>Tove</to>    <from>Jani</from>    <heading>Re

  • Android XML数据的三种解析方式

    本篇文章包含以下内容: XML数据的Dom解析      XML数据的Sax解析      XML数据的Pull解析      Activity中使用三种解析      Sax解析与Pull解析区别 三种解析方式的步骤: 1.在Assets文件夹中模拟创建XML数据 2.创建对应XML的Bean对象 3.开始解析 XML数据的Dom解析 DOM解析XML文件时,会将XML文件的所有内容读取到内存中(内存的消耗比较大),然后允许您使用DOM API遍历XML树.检索所需的数据 一.在Assets文

  • HTML中的XML数据岛记录编辑与添加

    <HTML><HEAD><Title>HTML中的数据岛中的记录集</Title></HEAD><body bkcolor=#EEEEEE text=blue bgcolor="#00FFFF"><Table align=center width="100%"><TR><TD align="center">   <h5><

  • 在jquery中处理带有命名空间的XML数据

    但不幸的是,很多服务返回的数据仍然是XML格式的. jquery对于xml这种数据的处理是内置支持的,这一点没有任何问题.但前提是返回的数据没有带任何命名空间.例如下面这份数据 复制代码 代码如下: <?xml version="1.0" encoding="utf-8" ?> <data> <Employee id="1" firstName="ares" lastName="chen

  • 详细解读Python中解析XML数据的方法

    Python可以使用 xml.etree.ElementTree 模块从简单的XML文档中提取数据. 为了演示,假设你想解析Planet Python上的RSS源.下面是相应的代码: from urllib.request import urlopen from xml.etree.ElementTree import parse # Download the RSS feed and parse it u = urlopen('http://planet.python.org/rss20.xm

随机推荐