目录
XML order Database
首页 web前端 js教程 使用javascript访问XML数据的实例_javascript技巧

使用javascript访问XML数据的实例_javascript技巧

May 16, 2016 pm 07:22 PM

在网络浏览器软件中,可以Internet Explorer (IE)现在是一种标准的软件。可以看到,运行不同版本的Windows操作系统(和很多其他的操作系统)的每一台机器几乎都使用IE。微软已经通过ActiveX控件将IE的功能包含在执行成熟的XML处理技术中。

在本篇文章中,我们将讲述如何在IE中使用ActiveX功能来访问并解析XML文档,由此允许网络冲浪者操纵它们。

网上冲浪
我们以一个标准的顺序文档而开始,如表A所示。这一文档包含简单的顺序数据以提供网络冲浪者浏览之用。不仅仅为了显示这些数据,我们还提供了一个简单的用户界面,网上冲浪都可以使用这一界面来浏览XML文档。

表A: order.xml


9900234

  1234
  5.95
  100
  595.00
  Super Widget Clamp


  6234
  22.00
  10
  220.00
  Mighty Foobar Flange


  9982
  2.50
  1000
  2500.00
  Deluxe Doohickie


  3256
  389.00
  1
  389.00
  Muckalucket Bucket

1111
3704.00
07/07/2002
8876


我们使用一个网络表单以访问这一XML文档,这一表单将显示SKU,价格,数量,各部分的小计,以及顺序中的每一选项的描述。我们的表单还包含向前和向后浏览选项的按钮。

网页的构成
网页的重要部分是在于表单,我们将使用一个表以易读的方式在屏幕上显示。下面是显示HTML表的代码片段:



  
  
  
  
  
SKU
Price
Quantity
Total
Description name="Description">

 type="button" value=" >> " onClick="getDataNext();">
 

请注意到,我们在表的下面包含了两个按钮,即通过getDataNext() 和getDataPrev()函数来浏览前一个和后一个的记录,这也是我们所要讨论的问题。

脚本
其实,我们网页的实质部分不是在于表单,而是在于控制表单的脚本。在我们的脚本中包括四个部分。首先,我们通过载入XML文档而初始化网页。第二部分是导航到下一个记录。第三步是导航到前一个记录。第四部分是从XML文档中提取单一的值。表B显示了我们的网页的全部内容。

表B: jsxml.html


  <script> <BR><!-- <BR>  vari = -1; <BR>  varorderDoc = new ActiveXObject("MSXML2.DOMDocument.3.0"); <BR>  orderDoc.load("order.xml"); <BR>  var items = orderDoc.selectNodes("/Order/Item"); <BR>    <BR>  function getNode(doc, xpath) { <BR>   varretval = ""; <BR>   var value = doc.selectSingleNode(xpath); <BR>   if (value) retval = value.text; <BR>   return retval; <BR>  } <BR>  <BR>  function getDataNext() { <BR>   i++; <BR>   if (i > items.length - 1) i = 0; <br><br>   document.forms[0].SKU.value = getNode(orderDoc, "/Order/Item[" + <BR>i + "]/SKU"); <BR>   document.forms[0].Price.value = getNode(orderDoc, "/Order/Item[" <BR>+ i + "]/PricePer"); <BR>   document.forms[0].Quantity.value = getNode(orderDoc, <BR>"/Order/Item[" + i + "]/Quantity"); <BR>   document.forms[0].Total.value = getNode(orderDoc, "/Order/Item[" <BR>+ i + "]/Subtotal"); <BR>   document.forms[0].Description.value = getNode(orderDoc, <BR>"/Order/Item[" + i + "]/Description"); <BR>  } <BR>  <BR>  function getDataPrev() { <BR>   i--; <BR>   if (i < 0) i = items.length - 1; <BR>   <BR>   document.forms[0].SKU.value = getNode(orderDoc, "/Order/Item[" + <BR>i + "]/SKU"); <BR>   document.forms[0].Price.value = getNode(orderDoc, "/Order/Item[" <BR>+ i + "]/PricePer"); <BR>   document.forms[0].Quantity.value = getNode(orderDoc, <BR>"/Order/Item[" + i + "]/Quantity"); <BR>   document.forms[0].Total.value = getNode(orderDoc, "/Order/Item[" <BR>+ i + "]/Subtotal"); <BR>   document.forms[0].Description.value = getNode(orderDoc, <BR>"/Order/Item[" + i + "]/Description"); <BR>  } <BR>  <BR>// --> <BR>  </script>


XML order Database




  
  
  
  
  
SKU
Price
Quantity name="Quantity">
Total
Description name="Description">

 type="button" value=" >> " onClick="getDataNext();">
 



运行
这一网页将传入并运行脚本的初始化。你一定确保order.xml文档与jsxml.html在相同的相同的路径上。

初始化部分将一个新的ActiveX对象例示为MSXML2.DOMDocument.3.0对象类型,然后脚本传入order.xml文档到内存中,并选择所有的/Order/Item节点。我们使用/Order/Item节点以识别文档已经包含的选项。

文档中的标准有一个onLoad属性,这一属性能够使得网页调用getDataNext()而初始化。这一功能可用于从XML文档中获得下一个值并显示在表单中。我们使用一个简单的索引来访问特定的选项。

向前(>>)和向后(
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在JavaScript中替换字符串字符 在JavaScript中替换字符串字符 Mar 11, 2025 am 12:07 AM

在JavaScript中替换字符串字符

自定义Google搜索API设置教程 自定义Google搜索API设置教程 Mar 04, 2025 am 01:06 AM

自定义Google搜索API设置教程

示例颜色json文件 示例颜色json文件 Mar 03, 2025 am 12:35 AM

示例颜色json文件

8令人惊叹的jQuery页面布局插件 8令人惊叹的jQuery页面布局插件 Mar 06, 2025 am 12:48 AM

8令人惊叹的jQuery页面布局插件

构建您自己的Ajax Web应用程序 构建您自己的Ajax Web应用程序 Mar 09, 2025 am 12:11 AM

构建您自己的Ajax Web应用程序

什么是这个&#x27;在JavaScript? 什么是这个&#x27;在JavaScript? Mar 04, 2025 am 01:15 AM

什么是这个&#x27;在JavaScript?

通过来源查看器提高您的jQuery知识 通过来源查看器提高您的jQuery知识 Mar 05, 2025 am 12:54 AM

通过来源查看器提高您的jQuery知识

10张移动秘籍用于移动开发 10张移动秘籍用于移动开发 Mar 05, 2025 am 12:43 AM

10张移动秘籍用于移动开发

See all articles