W3C的XPath

//跨浏览器返回XMLDOM对象

function getXMLDOM(xmlStr){

var xmlDom=null;

if(typeof window.DOMParser !=‘undefined‘){

xmlDom=(new DOMParser).parseFromString(xmlStr,‘text/xml‘);

var errors=xmlDom.getElementsByTagName(‘parsererror‘);

if(errors.length>0){

throw new Error(‘错误信息:‘+errors[0].textContent);

}

}else if(typeof window.ActiveXObject){

var version=[

‘MSXML2.DOMDocument6.0‘,

‘MSXML2.DOMDocument3.0‘,

‘MSXML2.DOMDocument‘,

];

for(var i=0;i<version.length;i++){

try{

var xmlDom=new ActiveXObject(version[i]);

}catch(e){

//跳过

}

}

xmlDom.loadXML(xmlStr);

if(xmlDom.parseError!=0){

throw new Error(‘错误信息:‘+xmlDom.parseError.reason);

};

return xmlDom;

}else{

throw new Error("您的系统或浏览器不支持XML DOM对象!");

};

return xmlDom;

}

//序列化XML

function serializerXML(xmlDom){

var xml=‘‘;

if(typeof window.XMLSerializer!=‘undefined‘){

xml=(new XMLSerializer()).serializeToString(xmlDom);

}else if(typeof xmlDom.xml!=‘undefined‘){

xml=xmlDom.xml;

}

return xml;

}

var xmlStr=‘<root><user id="5">Leee</user><user id="6">Koko</user></root>‘;

var xmlDom=getXMLDOM(xmlStr);

// alert(xmlDom.xml); //只有IE支持此序列化

// alert(serializerXML(xmlDom));

//PS: 为了跨域所有浏览器兼容,我们放弃了从外部加载XML文件,而使用字符串XML加载和序列化

//两种方式创建XPathResult

//单一节点,W3C的XPath下标是从1开始的

// var eva=new XPathEvaluator();

// alert(eva); //[object XPathEvaluator]

// var result=eva.evaluate(‘root/user[1]‘,xmlDom,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);

// alert(result); //[object XPathResult]

// if(result!==null){

// alert(serializerXML(result.singleNodeValue));

// }

// 第二种方法

// var result=xmlDom.evaluate(‘root/user[1]‘,xmlDom,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);

// if(result!==null){

// alert(serializerXML(result.singleNodeValue));

// }

//节点集合

var result=xmlDom.evaluate(‘root/user‘,xmlDom,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);

// alert(serializerXML(result.iterateNext()))

if(result!=null){

var nodes=[];

var node=result.iterateNext();

while(node!==null){

nodes.push(node);

node=result.iterateNext();

}

}

alert(serializerXML(nodes[0]));

alert(serializerXML(nodes[1]));

时间: 2024-08-11 05:45:08

W3C的XPath的相关文章

XPATH 查找指定Class 元素

毕竟XPath 可以比较迅速的从格式化的html查找解析相应的元素. 比较正规的网站布局,可以通过 chrome 的调试器 直接复制XPATH 路径.如图: 但是呢这种方法可能实现不了效果,得不到正确搜寻的值集合. 如何通过xpath 来查找一个 指定 class='xxx'的元素的内容呢. DocumentNode.SelectNodes("//div[@class='mainArea']/ul/li"); 大家可以 通过 如此: //div[@class='mainArea']的意

C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

转自原文C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 阅读目录 1.HtmlAgilityPack简介 2.XPath技术介绍与使用 3.采集天气网站案例 4.资源 第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel,是真尼玛的累,虽然那个时候C#还很菜,也想能不能通过程序来批量获取(所以平时想法要多才好).几

XPath详解

转载地址:http://www.cnblogs.com/fdszlzl/archive/2009/06/02/1494836.html XPath简介 XPath是W3C的一个标准.它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计.目前有XPath1.0和XPath2.0两个版本.其中Xpath1.0是1999年成为W3C标准,而XPath2.0标准的确立是在2007年.W3C关于XPath的英文详细文档请见:http://www.w3.org/TR/xpath20/ 

XPath 详解,总结

XPath简介 XPath是W3C的一个标准.它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计.目前有XPath1.0和XPath2.0两个版本.其中Xpath1.0是1999年成为W3C标准,而XPath2.0标准的确立是在2007年.W3C关于XPath的英文详细文档请见:http://www.w3.org/TR/xpath20/ . XPath是一种表达式语言,它的返回值可能是节点,节点集合,原子值,以及节点和原子值的混合等.XPath2.0是XPath1.0的超

XPath 简介

XPath 简介 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. 在学习之前应该具备的知识: 在您继续学习之前,应该对下面的知识有基本的了解: ·  HTML / XHTML ·  XML / XML 命名空间 如果您希望首先学习这些项目,请在我们的 首页 访问这些教程. 什么是 XPath? ·  XPath 使用路径表达式在 XML 文档中进行导航 ·  XPath 包含一个标准函数库 ·  XPath 是 XSLT 中的主要元

Xpath语法格式整理

经常在工作中会使用到XPath的相关知识,但每次总会在一些关键的地方不记得或不太清楚,所以免不了每次总要查一些零碎的知识,感觉即很烦又浪费时间,所以对XPath归纳及总结一下. 在这篇文章中你将能学习到: XPath简介 XPath 路径表达式详解 XPath在DOM,XSLT及XQuery中的应用 XPath简介 XPath 是W3C的一个标准.它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计.目前有XPath1.0和XPath2.0两个版 本.其中Xpath1.0是

XPath 语法规则

http://www.cnblogs.com/michaelsea/archive/2007/10/18/929230.html XPath is a language for finding information in an XML document. XPath is used to navigate through elements and attributes in an XML document. Xpath是一种能够在XML文档中寻找信息的语言.它通过XML文档中的元素和属性来进行

(转)Xpath语法格式整理

原文 经常在工作中会使用到XPath的相关知识,但每次总会在一些关键的地方不记得或不太清楚,所以免不了每次总要查一些零碎的知识,感觉即很烦又浪费时间,所以对XPath归纳及总结一下. 在这篇文章中你将能学习到: XPath简介 XPath 路径表达式详解 XPath在DOM,XSLT及XQuery中的应用 XPath简介 XPath是W3C的一个标准.它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计.目前有XPath1.0和XPath2.0两个版本.其中Xpath1.0

DOM4J介绍与代码示例(2)-XPath 详解

XPath 详解,总结 XPath简介 XPath是W3C的一个标准.它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计.目前有XPath1.0和 XPath2.0两个版本.其中Xpath1.0是1999年成为W3C标准,而XPath2.0标准的确立是在2007年.W3C关于XPath的英文 详细文档请见:http://www.w3.org/TR/xpath20/ . XPath是一种表达式语言,它的返回值可能是节点,节点集合,原子值,以及节点和原子值的混合等.XPath