【问题标题】:What is the difference between the following xpath expressions?以下 xpath 表达式有什么区别?
【发布时间】:2022-07-21 19:25:19
【问题描述】:

给定以下 xml 文档:

<table>
<tr>   <td>A</td>         <td>B</td>         <td>C</td>     </tr>
<tr>   <td>D</td>       <td>E</td>    <td>E</td>      </tr>
<tr>   <td>F</td>    <td>G</td>         <td>H</td>      </tr>
</table>

我得到以下表达式的不同结果,我不明白这是什么原因。

for://td[parent::td] 我得到了空集(即“不匹配”)。
for://td[..] 我得到了所有 td 元素的列表。

我不明白表达式之间有什么区别,因为..parent:: 的快捷方式。

我很乐意为此提供帮助。

【问题讨论】:

    标签: xml xpath


    【解决方案1】:

    区别:

    • //td[parent::td] 不选择任何内容,因为没有 td 元素具有 td 父元素。

    • //td[..] 选择所有 td 元素,因为所有 td 元素都有父元素。

    //td[parent::*]//td[..] 都会选择所有 td 元素。

    【讨论】:

    • 但是//td[parent::td]的意思不是下面这样吗?任何为他父母而存在的td。也就是说,parent::td 不是说“td 的父级”?
    • 不,将parent::td读作当前元素的父轴上的td元素。
    猜你喜欢
    • 2022-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 2020-08-10
    相关资源
    最近更新 更多