XML 解析 -- IE ,Chrome
通用的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的更多相关文章
- Android 简易XML解析
首先创建在Android工程中创建一个Assets文件夹 app/src/main/assets 在这里添加一个名为 data.xml的文件,然后编辑这个文件,加入如下XML格式内容 <?xml ...
- XML 解析器
所有现代浏览器都内建了供读取和操作 XML 的 XML 解析器.解析器把 XML 转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象. 解析 XML 文档为DOM对象 方法一: ...
- JavaScript使用浏览器内置XML解析器解析DOM对象
所有现代浏览器都内建了供读取和操作 XML 的 XML 解析器.解析器把 XML 转换为 XML DOM 对象 (可通过 JavaScript 操作的对象). 一.获取DOM对象 XMLHttpReq ...
- XML学习笔记——关于XML解析器
本篇文章基于W3C而写 在Firefox及其他浏览器中的XML解析器(除IE) var xmlDoc=document.implementation.createDocument("&quo ...
- xml解析技术
本文总结Dom,sax解析, 使用Java作为工具解析xml文档. 1 Dom 综述:Dom解析xml通常也称为xmlDom (和htmlDom技术差不多),将xml文档封装成树,好处就是xml中的 ...
- Duilib源码分析(三)XML解析器—CMarkup
上一节介绍了控件构造器CDialogBuilder,接下来将分析其XML解析器CMarkup: CMarkup:xml解析器,目前内置支持三种编码格式:UTF8.UNICODE.ASNI,默认为UTF ...
- JSON解析和XML解析对比
JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...
- 【Android】实现XML解析的几种技术
本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能. 在 ...
- 定位和xml解析和gson解析加上拉加载,下拉刷新
这里的上拉加载,下拉刷新用到是依赖包 Mainactivity,xml解析和定位 package com.exmple.autolayout; import java.util.List; impor ...
随机推荐
- 如何解决SQLServer占CPU100%
文章目录 遇到的问题 使用SQLServer Profiler监控数据库 SQL1:查找最新的30条告警事件 SQL2:获取当前的总报警记录数 有哪些SQL语句会导致CPU过高? 查看SQL的查询计划 ...
- nginx + keepalived 双机热备
序 双机热备是指两台机器都在运行,但并非两台机器同时在提供服务. 当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,且切换的时间非常短. keepalived的工作原理是VRRP—— ...
- Paramiko 模块使用
一.安装,下载 1.下载安装 pycrypto-2.6.1.tar.gz (apt-get install python-dev) 解压,进入,python setup.py build[编译],py ...
- jsp导出Excel功能的实现
借助POI的excel接口,可以方便得实现excel导出功能: 首先需要引入poi对应的jar包 1.前端jsp页面需要一个a链接. web页面文件MIM类型的下载,只需要一个a元素,该a可以链到该文 ...
- curl命令常见用法汇总 good
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面. curl是一个强大的命令行工具,它可以通过网络将信息传递给服务器或者从服 ...
- 导出iPhone中安装的APP的iPA文件
1.让iPhone连接电脑,打开iTunes,选择本电脑,然后点立即备份. 2.完成上一步的操作之后,选择应用,在iTunes中就会列出你从App Store中下载的应用,自己连接真机调试的应用是没有 ...
- Function.prototype.bind接口浅析
本文大部分内容翻译自 MDN内容, 翻译内容经过自己的理解. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Glo ...
- apache allow和deny
转自 http://www.cnblogs.com/top5/archive/2009/09/22/1571709.html 影响最终判断结果的只有两点: 1. order语句中allow.deny的 ...
- UITextFiled
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...
- UIBarButtonItem变弹簧
UIBarButtonItem * spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystem ...