`
cljspn
  • 浏览: 47578 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
社区版块
存档分类
最新评论

MSXML2.DOMDocument.3.0从XML中读取数据

    博客分类:
  • js
阅读更多

先有一个XML数据:

<?xml version="1.0" ?>
<Order>
  <Account>9900234</Account>
  <Item id="1">
    <SKU>1234</SKU>
    <PricePer>5.95</PricePer>
    <Quantity>100</Quantity>
    <Subtotal>595.00</Subtotal>
    <Description>Super Widget Clamp</Description>
  </Item>
  <Item id="2">
    <SKU>6234</SKU>
    <PricePer>22.00</PricePer>
    <Quantity>10</Quantity>
    <Subtotal>220.00</Subtotal>
    <Description>Mighty Foobar Flange</Description>
  </Item>
  <Item id="3">
    <SKU>9982</SKU>
    <PricePer>2.50</PricePer>
    <Quantity>1000</Quantity>
    <Subtotal>2500.00</Subtotal>
    <Description>Deluxe Doohickie</Description>
  </Item>
  <Item id="4">
    <SKU>3256</SKU>
    <PricePer>389.00</PricePer>
    <Quantity>1</Quantity>
    <Subtotal>389.00</Subtotal>
    <Description>Muckalucket Bucket</Description>
  </Item>
  <NumberItems>1111</NumberItems>
  <Total>3704.00</Total>
  <OrderDate>07/07/2002</OrderDate>
  <OrderNumber>8876</OrderNumber>
</Order>

然后把Item结点的数据读出。

相关的JS函数如下:

<script language="javascript">
    var i = -1;
    var orderDoc = new ActiveXObject ("MSXML2.DOMDocument.3.0");
    orderDoc.load("order.xml");
    var items = orderDoc.documentElement.selectNodes("/Order/Item");

    //获得结点文本
    function getNode(doc, xpath) {
      var retval = "";
      var value = doc.documentElement.selectSingleNode(xpath);
      if (value) retval = value.text;
      return retval;
    }
    //下一条记录
    function getDataNext() {
      i++;
      if (i > items.length - 1) i = 0;

      document.forms[0].SKU.value = getNode(orderDoc, "/Order/Item[" + i + "]/SKU");
      document.forms[0].Price.value = getNode(orderDoc, "/Order/Item[" + i + "]/PricePer");
      document.forms[0].Quantity.value = getNode(orderDoc, "/Order/Item[" + i + "]/Quantity");
      document.forms[0].Total.value = getNode(orderDoc,"/Order/Item[" + i + "]/Subtotal");
      document.forms[0].Description.value = getNode(orderDoc, "/Order/Item[" + i + "]/Description");
    }
    //前一条记录

    function getDataPrev() {
      i--;
      if (i < 0) i = items.length - 1;
      
      document.forms[0].SKU.value = getNode(orderDoc, "/Order/Item[" + i + "]/SKU");
      document.forms[0].Price.value = getNode(orderDoc,"/Order/Item[" + i + "]/PricePer");
      document.forms[0].Quantity.value = getNode(orderDoc, "/Order/Item[" + i + "]/Quantity");
      document.forms[0].Total.value = getNode(orderDoc,"/Order/Item["+ i + "]/Subtotal");
      document.forms[0].Description.value = getNode(orderDoc, "/Order/Item[" + i + "]/Description");
    }
</script>

下面是测试网页代码:

<body onload="getDataNext()">
<form>
  <table border="0">
    <tr>
	    <td>SKU</td>
		<td><input type="text" name="SKU"></td>
	</tr>
    <tr>
	   <td>Price</td>
	   <td><input type="text" name="Price"></td>
    </tr>
    <tr>
	    <td>Quantity</td>
		<td><input type="text" name="Quantity"></td>
	</tr>
    <tr>
	    <td>Total</td>
		<td><input type="text" name="Total"></td>
	</tr>
    <tr>
	    <td>Description</td>
		<td><input type="text" name="Description"></td>
     </tr>
  </table>
    <input type="button" value="<<" onClick="getDataPrev()">
     <input type="button" value=">>" onClick="getDataNext()">
  </form>
</body>

 

分享到:
评论

相关推荐

    msxml3.msi

    标题“msxml3.msi”指的是Microsoft XML Core Services 3.0的安装程序,这是一个关键的系统组件,尤其对于依赖XML技术的软件来说至关重要。XML(eXtensible Markup Language)是一种用于存储和传输数据的标准格式,...

    msxml4.dll.tlh

    XML解析器的主要职责是读取XML文档,验证其语法正确性,并将其转换为内存中的数据结构,如DOM(Document Object Model)或SAX(Simple API for XML)。DOM解析器将整个XML文档加载到内存中,允许开发者通过节点遍...

    MSXML4.DLL 动态链接库文件

    2. **XML文档的加载和保存**:MSXML4.DLL支持从文件或内存中加载XML文档,也可以将修改后的文档保存回文件。 3. **XML数据的查询和遍历**:利用XPath(XML Path Language)或XSLT(XML Stylesheet Language ...

    javascript DOM 操作.doc

    IE 中是以ActiveX来支持DOM的,共有5个版本:Microsoft.XmlDom、MSXML2.DOMDocument、MSXML2.DOMDocument.2.0、MSXML2.DOMDocument.3.0和MSXML2.DOMDocument.4.0。 创建方法:在IE中,可以使用以下代码创建一个DOM...

    IE下JS读取xml文件示例代码

    使用JS读取xml文件,这里暂只考虑...= ‘string’) { var versions = [ “MSXML2.DOMDocument.6.0”, “MSXML2.DOMDocument.3.0”, “MSXML2.DOMDocument”, “Microsoft.XMLDOM” ]; var i, len; for (i = 0, len = ve

    使用vba生成xml文件

    1. **创建XML Stream对象**:首先,我们需要在VBA代码中创建一个MSXML2.DOMDocument对象,用于处理XML数据。接着创建一个MSXML2.FreeThreadedDOMDocument对象,它是XML Stream的实例。 ```vba Dim xmlDoc As MSXML2...

    XML解析器VB

    VB中,可以通过MSXML2.DOMDocument的selectNodes或selectSingleNode方法,或者System.Xml.XmlDocument的SelectNodes和SelectSingleNode方法来使用XPath。 - **修改节点**:VB可以通过DOM接口来添加、删除、修改XML...

    用DOM-MSXML实现解析xml文件

    这段代码中,`MSXML2.DOMDocument60`是MSXML的一个版本,用来创建一个DOM解析器实例。`async = False`表示同步加载XML文件,确保在`Load`方法执行后,整个XML文档已完全加载。`Load`方法接收XML文件的路径,将其加载...

    XML解析MSXML解析

    1. **MSXML2.DOMDocument**: 这是DOM解析的核心类,可以用来加载XML文档,提供查找、修改和保存XML数据的功能。 2. **MSXML2.XMLHTTP**: 用于异步发送HTTP请求获取XML数据,常用于Web服务调用。 3. **MSXML2.SAX...

    vs2008下mfc读取xml文件

    这里的`L"MSXML2.DOMDocument.3.0"`是XML解析器的版本号,确保与你的系统中安装的MSXML版本相匹配。 在读取XML文件时,可能会遇到中文字符编码问题。XML文件通常以UTF-8或GBK等编码存储,如果编码不匹配,中文字符...

    Xml.rar_vb xml_xml_xml vb_读取xml

    Dim xmlDoc As New MSXML2.DOMDocument60 If Not xmlDoc.Load("example.xml") Then MsgBox "无法加载XML文件!" Exit Sub End If Dim root As MSXML2.IXMLDOMElement Set root = xmlDoc.documentElement ``` 要分...

    msxml.msi下载

    它为开发者提供了在Windows环境中读取、创建、验证和操作XML数据的能力。MSXML.msi是一个安装程序包,包含了MSXML的核心组件,通常在遇到XML相关错误时,需要下载并安装此文件来解决问题。 XML是一种被广泛使用的...

    vb读xml节点、属性值

    - 在VB6中,我们可以使用MSXML库(Microsoft XML,版本3.0或更高)来处理XML,引入`Msxml2.DOMDocument`对象,它提供了加载、解析和操作XML文档的方法。 - 在VB.NET(Visual Basic .NET)中,可以使用内置的System...

    VC.XML.document.node.create.rar_VC XML CREATE_XML文档_vc xml _vc x

    在VC++中,我们可以利用MSXML库(Microsoft XML Core Services)来操作XML文档,包括创建、读取和修改XML节点。 MSXML库提供了几种不同的接口,如IXMLDOMDocument和IXMLDOMNode,用于XML文档的处理。在创建XML文档...

    Content-Reder-Source-Code.rar_Before_open xml

    3. **VBA和XML交互**:使用VBA的MSXML库(如MSXML2.DOMDocument对象)来读取、写入和操作XML文件。这包括加载XML文档、解析节点、修改数据和保存XML。 4. **Workbook_Open事件**:在VBA中,这是特定于Excel的工作簿...

    VC读取XML文件数据

    HRESULT hr = CoCreateInstance(__uuidof MSXML2::DOMDocument60), NULL, CLSCTX_INPROC_SERVER, __uuidof(IXMLDOMDocument), (LPVOID*)&pXMLDoc); ``` 3. **加载XML文件**:然后,使用IXMLDOMDocument对象的`load`...

    XML操作又一例 你所看到的文件来自:E动天下—VB专业源码网

    VB中,可以使用`MSXML2.DOMDocument`类来加载和操作XML文件。例如: ```vb Dim xmlDoc As MSXML2.DOMDocument Set xmlDoc = New MSXML2.DOMDocument xmlDoc.async = False xmlDoc.Load "path_to_your_xml_file....

    MSXML 操作XML文件

    MSXML,全称为Microsoft XML Core Services,是微软提供的一套用于处理XML文档的API,它允许开发者在多种编程环境中,包括C++,进行XML数据的解析、创建、修改和查询。在VS2008环境下,你可以利用MSXML库来实现XML...

    VB6 使用XML

    Dim xml_document As New MSXML2.DOMDocument ' 加载XML文档 xml_document.Load "C:\path\to\yourfile.xml" ' 或者通过XML字符串加载 Dim xml_str As String xml_str = "&lt;Addresses&gt;&lt;Entry Type=""Personal""/&gt;...

    从sqlserver生成XML

    4. VB的XML处理:如MSXML库中的DOMDocument类,用于处理XML数据。 通过这个过程,你可以高效地将SQL Server中的表数据转换为XML文件,便于进一步的数据处理和交换。在实际项目中,根据需求,你可能还需要考虑XML的...

Global site tag (gtag.js) - Google Analytics