现在的位置: 首页 > 综合 > 正文

xPath

2013年05月09日 ⁄ 综合 ⁄ 共 870字 ⁄ 字号 评论关闭
第一次接触xml 是2000年的majordomo项目, 那时还没有xpath,当时连做三个关于xml的项目,一个是用xml做主动推送(类似现在的rss), 一个是用SVG做股票行情的技术测试项目(因为那时SVG还在草案阶段),然后是xml做数据库和c++对象的映射(类似现在的O-R mapping)。
之后似乎每个项目都离不开xml,发现现代的项目几乎已经离不开xml,对xml也已经有些感情了。
 
从去年底开始到现在的连续两个项目, 都要和xPath斗争, 就写点关于xPath的东东吧。
 
原来的xsl, 现在分成两个个独立的概念,xslt专门负责transformation, xpath负责查询.
 
我们来解释path的两种表示方法:"/"和"//"。
"/"是表示当前文档的节点,类似DOS目录分割符。例如:/PEOPLE表示选择根节点下的PEOPLE元素;PEOPLE/PERSON表示选择PEOPLE元素下所有的PESON子元素。
"//"则表示当前文档所有的节点。类似查看整个目录。例如://PEOPLE表示选择文档中所有的PEOPLE元素,无论它在什么层次;PEOPLE//PERSON表示在PEOPLE元素下所有的PERSON元素,无论它的层次多深。
PERSON[@name='john']
这句代码表示寻找attribute name 的值为john的person节点
 
PERSON[position()=2]
这句代码表示寻找第二个"PERSON" 元素

 
PERSON[starts-with(name, "B")]
这句代码表示寻找所有名称以"B"开头的PERSON元素。
 
//*[position() = 1]/@on-loan
选择文档中的所有节点,然后给我第一个节点的 on-loan 属性
 
Learn xPath by 10 examples (推荐)
xPath 1.0 spec
 

 

抱歉!评论已关闭.