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 ...
随机推荐
- [BS-12] JSON的基础知识--百科
JSON的基础知识--百科 http://baike.baidu.com/view/136475.htm
- Speed-BI 图表功能:服装订货与销售匹配分析
在作为一个买手我们根据对市场的预测,订了一批的货回来. 我们总会有一个疑问:我的订货与市场的需求是一致的吗?是否出现了较大偏差.这时我们通过分析两个指标:订货占比与销售占比的差异,进行订货与销售的匹配 ...
- BlockingQueue的使用
本例介绍一个特殊的队列:BlockingQueue,如果BlockQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒.同 ...
- makefile中引用其他makefile方法
在Makefile中引用其他Makefile文件的方法是,使用inclue filename.mk
- git log 常用命令
1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Page Down.↓.↑来控制显示: ...
- canvas的代码封装
(function(window,document){ var cs2d = function(selector,options){ return new cs2d.fn.init(selector, ...
- javascript实例学习之六—百叶窗效果
一.要结合布局才能形成百叶窗的效果 二.开启两个定时器,第一个定时器控制的是百叶窗整体一次上翻,一次下翻:另一个控制百叶窗中的各页逐次翻转,形成层次效果.否则就成了普通的滚动广告的效果了 本实现借助于 ...
- Linux 动态链接库学习笔记
参考资料: http://www.linuxidc.com/Linux/2012-01/50739.htm http://www.yolinux.com/TUTORIALS/LibraryArchiv ...
- iOS - (调用系统本机打电话功能)
如下图所示,点击订单里的打电话 button 后,调用系统的打电话功能. 这个调用系统打电话功能有点简单,不需要遵守协议和代理什么的,直接在点击方法里写上几句代码就可以了. 下面来看看代码吧: 接下来 ...
- Java基础之读文件——使用缓冲读取器读取文件(ReaderInputFromFile)
控制台程序,本例读取Java基础之写文件部分(WriterOutputToFile)写入的Saying.txt. import java.io.*; import java.nio.file.*; i ...