列子:
语法:
XPath | Result |
/dept/@bldg | 101 |
/dept/employee/@id |
901
902
|
/dept/employee/name |
<name>Peter Pan</name>
<name>John Doe</name>
|
/dept/employee/name/text() |
Peter Pan
John Doe
|
/dept/employee/*/text() |
John Doe
408 555 1212
344
Peter Pan
408 555 9918
216
|
/dept/*/@id |
901
902
|
//name/text() |
Peter Pan
John Doe
|
/dept//phone |
<phone>408 555 1212</phone>
<phone>408 555 9918</phone>
|
/dept/employee[@id=“902”]/name | <name>Peter Pan</name> |
/dept[@bldg=“101”]/employee[office
>“300”]/name
| <name>John Doe</name> |
//employee[office=“344” OR office=“216”]/@id |
901
902
|
/dept/employee[2]/@id | 902 |
/dept/employee/name[../@id=“902”] | <name>Peter Pan</name> |
/dept/employee/office[.>“300”] | <office>344</office> |
/dept/employee[office > “300”]/office | <office>344</office> |
/dept/employee[name=“John Doe”]/../@bldg | 101 |
/dept/employee/name[.=“John Doe”]/../../@bldg | 101 |
- XPath表达式使用完整限定路径指定元素和(或者)属性。符号“@”用来指定属性。若仅仅需要获得一个元素的值(文本节点),则使用“text()”函数
- XPath中有两个通配符:“*”匹配任意标签名 “//”是“子或自身”通配符
- 谓词部分放置在[]中。作为对照,可以认为它们等价于SQL中的WHERE子句。例如 [@id=”902”]会被解释成“WHERE 属性id 值等于“902”。在一个XPath表达式中可以有多个谓词。要指定特定位置的项,使用 [n],这表明同一级元素的第n项会被选中。例如,employee[2]表示第二个雇员被选中。
- XPath的父元素与MS-DOS或者Linux/UNIX相似,在表达式中使用“.”(读作dot)表示引用当前上下文,使用“..”表示引用上一级上下文。