xpath操作
来源:互联网 发布:下载软件的软件排行榜 编辑:程序博客网 时间:2024/06/04 00:58
XPath:xml pathLanguage,是用于确定xml某个节点位置的语言。
根据xpath查找节点的JavaScript方法
function selectSingleNode(xmldoc,sXpath){
if (window.ActiveXObject){
//IE浏览器
returnxmldoc.selectSingleNode(sXpath);
} else if(window.XPathEvaluator) {
//FireFox类浏览器
varxpathObj = new XPathEvaluator();
if(xpathObj) {
varresult =xpathObj.uate(sXpath,xmldoc,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);
returnresult.singleNodeValue;
}else {
returnnull;
}
} else {
returnnull;
}
}
function selectNodes(xmldoc,sXpath){
if (window.ActiveXObject){
//IE浏览器
returnxmldoc.selectNodes(sXpath);
} else if(window.XPathEvaluator) {
//FireFox类浏览器
varxpathObj = new XPathEvaluator();
if(xpathObj) {
varresult =xpathObj.uate(sXpath,xmldoc,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);
//得到的result是个迭代对象,需要把它里面的内容转存到数组中
varnodes = new Array();
varnode;
while((node= result.iterateNext()) != null) {
//把迭代器中的内容存到数组中
nodes.push(node);
}
returnnodes;
}else {
returnnull;
}
} else {
returnnull;
}
}
下面是利用上面的方法查找xml文档中指定条件节点的代码
function testxpath(){
varrootElement =loadXML(true,"XPATH.xml");
removeBlank(rootElement);
//查找所有的author元素节点
//关键就是如何表式元素节点在DOM树中的路径
//绝对路径 /books/book/author
//相对路径 book/author
//全文档搜索法 //author //book/author
varauthor1 = selectNodes(rootElement,"/books/book/author");
varauthor2 = selectNodes(rootElement,"book/author");
varauthor3 = selectNodes(rootElement,"//author");
varauthor4 = selectNodes(rootElement,"//book/author");
//查找属性节点,查找book节点下isdn属性
//关键是先找到包含属性节点的元素节点
varisdn1 = selectNodes(rootElement,"/books/book/@isdn");
varisdn2 =selectNodes(rootElement,"[email=book/@isdn]book/@isdn[/email]");
varisdn3 = selectNodes(rootElement,"//book/@isdn");
varisdn4 = selectNodes(rootElement,"//books/book/@isdn");
//查找文本节点,name元素下面的文本
//关键是找到包含文本节点的那个元素节点
vartext1 = selectNodes(rootElement,"/books/book/name/text()");
vartext2 = selectNodes(rootElement,"book/name/text()");
vartext3 = selectNodes(rootElement,"//book/name/text()");
vartext4 = selectNodes(rootElement,"//name/text()");
//有条件的查找元素节点,包含属性isdn
//需要首先找到元素节点,然后再增加条件表达式
varbook1 = selectNodes(rootElement,"/books/book[@isdn]");
varbook2 = selectNodes(rootElement,"book[@isdn]");
varbook3 = selectNodes(rootElement,"//book[@isdn]");
//多个条件与关系的查找元素节点
//需要首先找到元素节点,然后每一个查询条件写在一个中括号中
varbookA1 =selectNodes(rootElement,"/books/book[@isdn='0002'][price>35]");
varbookA2 =selectNodes(rootElement,"book[@isdn='0002'][price>35]");
varbookA3 =selectNodes(rootElement,"//book[@isdn='0002'][price>35]");
//多个条件或关系的查找元素节点
//需要首先找到元素节点,然后每一个查询条件写在一个XPATH的表达式,这些表达式用|组合,表式或关系
var bookO1 = selectNodes(rootElement,"/books/book[@isdn='0002'] |/books/book[price>35]");
var bookO2 = selectNodes(rootElement,"book[@isdn='0002'] |/books/book[price>35]");
var bookO3 = selectNodes(rootElement,"//book[@isdn='0002'] |/books/book[price>35]");
}
//IE浏览器
returnxmldoc.selectSingleNode(sXpath);
} else if(window.XPathEvaluator) {
//FireFox类浏览器
varxpathObj = new XPathEvaluator();
if(xpathObj) {
varresult =xpathObj.uate(sXpath,xmldoc,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);
returnresult.singleNodeValue;
}else {
returnnull;
}
} else {
returnnull;
}
}
function selectNodes(xmldoc,sXpath){
if (window.ActiveXObject){
//IE浏览器
returnxmldoc.selectNodes(sXpath);
} else if(window.XPathEvaluator) {
//FireFox类浏览器
varxpathObj = new XPathEvaluator();
if(xpathObj) {
varresult =xpathObj.uate(sXpath,xmldoc,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);
//得到的result是个迭代对象,需要把它里面的内容转存到数组中
varnodes = new Array();
varnode;
while((node= result.iterateNext()) != null) {
//把迭代器中的内容存到数组中
nodes.push(node);
}
returnnodes;
}else {
returnnull;
}
} else {
returnnull;
}
}
下面是利用上面的方法查找xml文档中指定条件节点的代码
function testxpath(){
varrootElement =loadXML(true,"XPATH.xml");
removeBlank(rootElement);
//查找所有的author元素节点
//关键就是如何表式元素节点在DOM树中的路径
//绝对路径 /books/book/author
//相对路径 book/author
//全文档搜索法 //author //book/author
varauthor1 = selectNodes(rootElement,"/books/book/author");
varauthor2 = selectNodes(rootElement,"book/author");
varauthor3 = selectNodes(rootElement,"//author");
varauthor4 = selectNodes(rootElement,"//book/author");
//查找属性节点,查找book节点下isdn属性
//关键是先找到包含属性节点的元素节点
varisdn1 = selectNodes(rootElement,"/books/book/@isdn");
varisdn2 =selectNodes(rootElement,"[email=book/@isdn]book/@isdn[/email]");
varisdn3 = selectNodes(rootElement,"//book/@isdn");
varisdn4 = selectNodes(rootElement,"//books/book/@isdn");
//查找文本节点,name元素下面的文本
//关键是找到包含文本节点的那个元素节点
vartext1 = selectNodes(rootElement,"/books/book/name/text()");
vartext2 = selectNodes(rootElement,"book/name/text()");
vartext3 = selectNodes(rootElement,"//book/name/text()");
vartext4 = selectNodes(rootElement,"//name/text()");
//有条件的查找元素节点,包含属性isdn
//需要首先找到元素节点,然后再增加条件表达式
varbook1 = selectNodes(rootElement,"/books/book[@isdn]");
varbook2 = selectNodes(rootElement,"book[@isdn]");
varbook3 = selectNodes(rootElement,"//book[@isdn]");
//多个条件与关系的查找元素节点
//需要首先找到元素节点,然后每一个查询条件写在一个中括号中
varbookA1 =selectNodes(rootElement,"/books/book[@isdn='0002'][price>35]");
varbookA2 =selectNodes(rootElement,"book[@isdn='0002'][price>35]");
varbookA3 =selectNodes(rootElement,"//book[@isdn='0002'][price>35]");
//多个条件或关系的查找元素节点
//需要首先找到元素节点,然后每一个查询条件写在一个XPATH的表达式,这些表达式用|组合,表式或关系
var bookO1 = selectNodes(rootElement,"/books/book[@isdn='0002'] |/books/book[price>35]");
var bookO2 = selectNodes(rootElement,"book[@isdn='0002'] |/books/book[price>35]");
var bookO3 = selectNodes(rootElement,"//book[@isdn='0002'] |/books/book[price>35]");
}
- xpath操作
- xpath操作xml
- xml操作之xpath
- XPath 操作符
- 实用dom4j操作xpath
- java 操作 xpath
- xpath操作xml
- dom4j xpath 操作 xml 乱码
- C# 操作XML XPATH语法
- XML文件操作之XPath
- jdom使用Xpath操作xml
- XPath 对xml文件操作
- Xpath完美操作XML数据库
- dom4j操作节点(XPath 语法)
- Java 通过xpath操作xml
- xpath对XML的操作
- pymongo 和 xpath 基本操作
- 使用dom4j操作Xpath的操作
- 线段树的应用-poj3264的解法
- IT之禅语—编程也是需要悟的
- TUXEDO应用小结
- 后装iis 支持asp.net
- 文字生成图片
- xpath操作
- Maven OutOfMemory错误
- struts基本原理
- 人生
- 在不同版本的 IIS 上使用 ASP.NET MVC
- AIX环境下安装IBM JDK 1.6
- 有待学习
- Linux C编程一站式学习 笔记
- 解决SVN被代理的问题