旗下导航:搜·么
当前位置:网站首页 > XML教程 > 正文

Web设想中怎样运用XML数据源对象细致引见【XML教程】,Web,XML,源对象

作者:搜教程发布时间:2019-12-01分类:XML教程浏览:99评论:0


导读: xml数据源对象是一个ActiveX控件,许可你在XML文件和HTML页面之间操纵数据。本文将向你展现怎样从种种XML数据源中提取数据,以及怎样运用javaScript显现这些数...
 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");

运用XML-DSO和JavaScript

  假定你有一个包括姓名、电子邮件地址和电话号码的XML文件。你想运用它构建一个应用程序,显现每一个人的档案--一次显现一个。用户将运用"Next"和"Previous"按钮阅读每一个人的数据。Javascript能够协助你完成这个目标。

  下面的代码运用纪录集要领把文件中一切的数据保存到一个变量memberSet中。moveNext()要领指向下一个数据项(下一行)。剧本然后载入XML文件example4.xml,把纪录保存到变量memberSet中。第一个纪录将被显现,然则memberSet.moveNext()指向文件中相对于前一个指定数据的下一个纪录。

<!-- example4.xml -->
<?xml version="1.0" ?>
<myDB>
<member>
<name>Premshree Pillai</name>
<sex>male</sex>
</member>
<member>
<name>Vinod</name>
<sex>male</sex>
</member>
<member>
<name>Santhosh</name>
<sex>male</sex>
</member>
</myDB>

  这里是响应的HTML文件:

<!-- example4.htm -->
<html>
<head>
<title>XML DSO-example4.htm</title>
<script language="JavaScript">
function load() {
var xmlDso=myDB.XMLDocument;
xmlDso.load("example4.xml");

/* Get the complete record set */
var memberSet=myDB.recordset;

/* Go to next data */
memberSet.moveNext();
}
</script>
</head>
<body bgcolor="#FFFFFF" onLoad="load()">

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

<span datasrc="#myDB" datafld="name"></span>

</body>
</html>

输出应是:

Vinod

  下面给出更多运用JavaScript操纵XML-DSO的要领:

· movePrevious(): 指向前一个数据项。

   · moveFirst(): 指向第一个数据项。

   · moveLast(): 指向末了一个数据项。

   · EOF: 这个属性用来检测我们是不是已抵达数据纪录的底部。

运用XML-DSO和JavaScript

  假定你有一个包括姓名、电子邮件地址和电话号码的XML文件。你想运用它构建一个应用程序,显现每一个人的档案--一次显现一个。用户将运用"Next"和"Previous"按钮阅读每一个人的数据。Javascript能够协助你完成这个目标。

  下面的代码运用纪录集要领把文件中一切的数据保存到一个变量memberSet中。moveNext()要领指向下一个数据项(下一行)。剧本然后载入XML文件example4.xml,把纪录保存到变量memberSet中。第一个纪录将被显现,然则memberSet.moveNext()指向文件中相对于前一个指定数据的下一个纪录。

<!-- example4.xml -->
<?xml version="1.0" ?>
<myDB>
<member>
<name>Premshree Pillai</name>
<sex>male</sex>
</member>
<member>
<name>Vinod</name>
<sex>male</sex>
</member>
<member>
<name>Santhosh</name>
<sex>male</sex>
</member>
</myDB>

  这里是响应的HTML文件:

<!-- example4.htm -->
<html>
<head>
<title>XML DSO-example4.htm</title>
<script language="JavaScript">
function load() {
var xmlDso=myDB.XMLDocument;
xmlDso.load("example4.xml");

/* Get the complete record set */
var memberSet=myDB.recordset;

/* Go to next data */
memberSet.moveNext();
}
</script>
</head>
<body bgcolor="#FFFFFF" onLoad="load()">

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

<span datasrc="#myDB" datafld="name"></span>

</body>
</html>

  输出应是:

   Vinod

 下面给出更多运用JavaScript操纵XML-DSO的要领:

   · movePrevious(): 指向前一个数据项。

   · moveFirst(): 指向第一个数据项。

   · moveLast(): 指向末了一个数据项。

   · EOF: 这个属性用来检测我们是不是已抵达数据纪录的底部。

  initTicker()起首搜检是不是有IE 4+。假如阅读器是IE4+,这个XML文件被作为一个参数被通报并载入。假如定时器失利了,那末挪用xmlDsoTicker()函数。xmlDsoTicker()除了xmlFile参数之外,和initTicker()有雷同的参数,由于XML文件已被载入。xmlDsoTicker()搜检变量counter(初始值为maxMsgs)是不是小于maxMsgs-1。假如是,moveNext()要领指向tickerSet中下一个数据项。

  HTML页面的BODY包括下面的代码:

<a href="" datasrc="#ticker" datafld="URL" class="tickerStyle">
<span datasrc="#ticker" datafld="message"></span>
</a>

图1:定时器应用程序显现输出。

  在这段代码中,<A>标记把XML文件的URL作为它的datafld。<SPAN>标记把XML文件的信息作为它的datafld。这个信息在<SPAN>元素中显现,然后全部信息能够经由过程这段信息响应的URL衔接。

  如许,<A>和<SPAN>元素包括下一个数据项(URL和信息)。在一段耽误今后,<A>和<SPAN>指向下一个数据。只需counter<maxMsgs-1(计数器每次递增),这个操纵就会发作。假如counter<maxMsgs-1是假,计数器就被设置为0,然后指向tickerSet中的第一个数据项。

以上就是Web设想中怎样运用XML数据源对象细致引见的内容,更多相关内容请关注ki4网(www.ki4.cn)!

标签:WebXML源对象


欢迎 发表评论: