JavaScript借助xpath操纵xml数据
时间:2010-04-20 来源:qbq
var fullCountSet = xmlDoc.evaluate("/gmail:feed/gmail:fullcount", |
这里用到的是xpath操纵xml数据
google mail的responseXML格式如下:
<FEED xmlns="http://purl.org/atom/ns#" version="0.3"> |
关于使用xpath操纵xml数据:
book.xml
<?xml version="1.0" encoding="utf-8"?> |
test.html
<html> |
两个文件放在同一个目录下即可。
运行test.html,输入
//book[title[@lang='en'] and price<=30]/title/text()
快看看效果吧!
输入这个呢?
/bookstore/book/year[.=2005]
XPath简介
每个XPath表达式都有两部分:一个上下文节点和一个节点模式。前者提供了节点模式起始的位置。后者是由一个或多个节点选择器组成的字符串。
比如我们使用表达式:
bookstore/book
含义:从<bookstore/>起,匹配位于<bookstore/>元素下的子节点<book/>元素。
bookstore[positon\(\)=1]/book
含义:从<bookstore/>起,匹配位于<bookstore/>元素下的第一个子节点<book/>元素。
bookstore/book/title[@lang='en']
含义:从<bookstore/>起,匹配位于<bookstore/>元素下的子节点属性lang=en的<title/>元素。
在表达式中@是attribute的缩写。
bookstore/book[title[@lang='en']]
含义:从<bookstore/>起,匹配位于<bookstore/>元素下的子节点title的属性lang=en的<book/>元素。
在表达式中@是attribute的缩写
IE中的XPath支持
比如:var lstNodes = oxmlDom.documentElement.selectNodes(“bookstore/book”);
说明:selectNodes返回活的列表。所以可以这样迭代所有的元素
如果只需要匹配模式的第一个元素,可以使用selectSingleNode()。
XPath表达式语法:
http://hi.baidu.com/cn_wangwei/blog/item/4ed5efd37eeb4a36960a16a6.html
http://www.cnblogs.com/chinaicm/archive/2008/07/04/1235249.html
http://www.w3.org/TR/xpath
http://www.cqzol.com/programming/624589.html