通用的method

<script type="text/javascript">
        //for chrome, attach method to XMLDocument
        if (!window.ActiveXObject) {
            XMLDocument.prototype.selectSingleNode = Element.prototype.selectSingleNode = function (xpath) {
                var x = this.selectNodes(xpath)
                ) return null;
                ];
            }
            XMLDocument.prototype.selectNodes = Element.prototype.selectNodes = function (xpath) {
                var xpe = new XPathEvaluator();
                var nsResolver = xpe.createNSResolver(this.ownerDocument == null ? this.documentElement : this.ownerDocument.documentElement);
                , null);
                var found = [];
                var res;
                while (res = result.iterateNext())
                    found.push(res);
                return found;
            }
        }

        function GetXMLDocument(xml) {
            if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) {
                var xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
                xmlDoc.async = false;
                xmlDoc.loadXML(xml);
                return xmlDoc;
            } else if (typeof window.DOMParser != "undefined") {
                return (new window.DOMParser()).parseFromString(xml, "text/xml");
            } else {
                return null;
            }
        }

        // get xml node text
        function GetXMLNodeText(xmlNode) {
            if (xmlNode == null) return "";
            var rt;
            if (window.ActiveXObject)    // IE
            {
                rt = xmlNode.text;
            }
            else {
                // FireFox, Chrome, ...
                rt = xmlNode.textContent;
            }
            if (rt == null) rt = xmlNode.nodeValue;    // XML DOM
            return rt;
        }
    </script>

Parse XML method

调用以上方法来解析“/NewDataSet/Table”型XML.

Example : <NewDataSet><Table><ID>1</ID><Name>test user 1</Name></Table><Table><ID>2</ID><Name>test user 2</Name></Table></NewDataSet>

function SelectorOption(id, name) {
            this.ID = id;
            this.Name = name;
        }

        function ParseDataSetXML(xml) {
            var options = [];
            var xmlDoc = GetXMLDocument(xml);
            if (xmlDoc) {
                var items = xmlDoc.selectNodes("/NewDataSet/Table");
                ; j < items.length; j++) {
                    var id = GetXMLNodeText(items[j].selectSingleNode("ID"));
                    var name = GetXMLNodeText(items[j].selectSingleNode("Name"));
                    options.push(new SelectorOption(id, name));
                }
            }
            return options;
        }

实际应用中可通过调用function ParseDataSetXML来解析“/NewDataSet/Table”型XML 获得一个数组,attribute ID 对应节点“ID”, attribute Name 对应节点“Name”

function ReleaseXML() {
            var insertXML = document.getElementById("txt").value;
            var items = ParseDataSetXML(insertXML);
            ; j < items.length; j++) {
                document.getElementById("lbSelected").options.add(new Option(items[j].Name, items[j].ID));
            }
        }

XML 解析 -- IE ,Chrome的更多相关文章

  1. Android 简易XML解析

    首先创建在Android工程中创建一个Assets文件夹 app/src/main/assets 在这里添加一个名为 data.xml的文件,然后编辑这个文件,加入如下XML格式内容 <?xml ...

  2. XML 解析器

    所有现代浏览器都内建了供读取和操作 XML 的 XML 解析器.解析器把 XML 转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象. 解析 XML 文档为DOM对象 方法一: ...

  3. JavaScript使用浏览器内置XML解析器解析DOM对象

    所有现代浏览器都内建了供读取和操作 XML 的 XML 解析器.解析器把 XML 转换为 XML DOM 对象 (可通过 JavaScript 操作的对象). 一.获取DOM对象 XMLHttpReq ...

  4. XML学习笔记——关于XML解析器

    本篇文章基于W3C而写 在Firefox及其他浏览器中的XML解析器(除IE) var xmlDoc=document.implementation.createDocument("&quo ...

  5. xml解析技术

    本文总结Dom,sax解析,  使用Java作为工具解析xml文档. 1 Dom 综述:Dom解析xml通常也称为xmlDom (和htmlDom技术差不多),将xml文档封装成树,好处就是xml中的 ...

  6. Duilib源码分析(三)XML解析器—CMarkup

    上一节介绍了控件构造器CDialogBuilder,接下来将分析其XML解析器CMarkup: CMarkup:xml解析器,目前内置支持三种编码格式:UTF8.UNICODE.ASNI,默认为UTF ...

  7. JSON解析和XML解析对比

    JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...

  8. 【Android】实现XML解析的几种技术

    本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能. 在 ...

  9. 定位和xml解析和gson解析加上拉加载,下拉刷新

    这里的上拉加载,下拉刷新用到是依赖包 Mainactivity,xml解析和定位 package com.exmple.autolayout; import java.util.List; impor ...

随机推荐

  1. php 配置本地自定义域名

    一.设置host文件 二.设置httpd.conf # Virtual hosts Include conf/extra/httpd-vhosts.conf 三.设置httpd-vhosts.conf ...

  2. C# 整形、双精度浮点型、字符串与字节型的相互转化

    整形.双精度浮点型.字符串与字节型的相互转化,如下 using System; using System.Collections.Generic; using System.Linq; using S ...

  3. Vue.2.0.5-Render 函数

    基础 Vue 推荐使用在绝大多数情况下使用 template 来创建你的 HTML.然而在一些场景中,你真的需要 JavaScript 的完全编程的能力,这就是 render 函数,它比 templa ...

  4. SQL order by 两个字段排序

    select * from emp;

  5. Codeforce Round #221 Div2

    每次的CF都是一把辛酸泪! 什么时候能打破这局面,昨天做着睡着了! 有时候有的题目也就差一线! 哎,! A:杠杆原理! B:算最后负的和! B:没弄出来当时就脑短路... C:事后写了个n*log(n ...

  6. 搞ACM的你们伤不起

    这个虽然看过很多遍了,但是还是看着想笑,有时候真的想问问自己为什么这么菜,血流得还不够? 劳资六年前开始搞ACM啊!!!!!!!!!!  从此踏上了尼玛不归路啊!!!!!!!!!!!!  谁特么跟劳资 ...

  7. javascript DOM对象

    DOM简介 1.html DOM:当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model) 2.DOM操作html JS能改变页面中的所有html元素 JS能改变页 ...

  8. 封装page分页类

    类: <?php //分页工具类 class Page{ /*         * 获取分页字符串         * @param1 string $uri,分页要请求的脚本url       ...

  9. snmp getTable demo :iftable ipAddresstable

    package org.huangxf.snmp.test; import java.io.IOException; import java.util.List; import org.snmp4j. ...

  10. ios pyudaren

    ed2k://|file|%E9%A1%B9%E7%9B%AE%E6%8D%95%E9%B1%BC%E8%BE%BE%E4%BA%BA01.rmvb|67044010|9e013987298d7900 ...