我们在使用xpath表达式的时候,有时候会在表达式里面写谓语(即过滤条件)来定位节点或者节点集,我们写的谓语有时会使用xpath函数才能实现我们相要的过滤条件。
比如:有一个xml文档
- <root>
- <ele>
- <name id="1" size="2" />
- <name id="2" >
- <name size="2"/>
- </ele>
- <prop>
- <name id="1" size="2"/>
- <value length="8" />
- </prop>
- <data>
- <name id="1" long="en" />
- <value/>
- </data>
- </root>
我们要实现:选择所有名称为name的元素,
那么xpath表达式可以写: //name ,
我们还可以写://*[name()='name']
那我们要实现:选取所有以'l'字符开头的属性该怎么做呢?
xpath表达式可以写://@*[starts-with(name(),'l')] 就实现了我们相要的功能。
上面的xpath表达式的谓语(即过滤条件)里面都使用了xpath函数。
另外注意:
XPath对大小写是敏感的。比如你的节点是<Table>,你的xpath写的是//table
则,查找不到你需要的结果。
要使XPath对大小写不敏感:
请参考:
INFO:使用 XPath 通过 MSXML 执行不区分大小写的搜索
http://support.microsoft.com/kb/315719
参考文章:
xpath入门实例:http://www.w3school.com.cn/xpath/xpath_functions.asp
w3school的xapth教程:http://www.w3school.com.cn/xpath/index.asp
w3school的xpath函数表:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html