我正在练习 XPath 并且很难理解一些概念。
从下面代码段我想要选择的w1ident和w1slavetype所述的元件w1slave,其元素节点w1slavename具有值livingroom。
<w1slave create="2017-01-05 12:39:41">
<w1ident>28-0000000FBAA6</w1ident>
<w1identprefix>28</w1identprefix>
<w1slavetype>THERM_DS18B20</w1slavetype>
<w1slavename>familyroom</w1slavename>
</w1slave>
<w1slave create="2017-01-05 12:39:45">
<w1ident>28-000005e2fdc3</w1ident>
<w1identprefix>28</w1identprefix>
<w1slavetype>THERM_DS18B20</w1slavetype>
<w1slavename>livingroom</w1slavename>
</w1slave>
Run Code Online (Sandbox Code Playgroud)
XPath 表达式//w1slave[w1slavename='livingroom']/w1ident有效,替换w1ident为w1slavetype.
但是一旦我用 选择了父节点//w1slave[w1slavename='livingroom'],是否有一种紧凑的方式来请求特定的子节点而不必重复初始选择?
喜欢
//w1slave[w1slavename='livingroom']/w1ident |
//w1slave[w1slavename='livingroom']/w1slavetype
Run Code Online (Sandbox Code Playgroud)
有效,但感觉很麻烦。
您可以self::在谓词中使用轴:
//w1slave[w1slavename='livingroom']/*[self::w1ident or self::w1slavetype]
Run Code Online (Sandbox Code Playgroud)
此外,如果您使用的是 XPath 2.0,您可以放弃谓词而只|在括号中使用联合 ( ):
//w1slave[w1slavename='livingroom']/(w1ident|w1slavetype)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1072 次 |
| 最近记录: |