使用'.' XPath表达式中的(点或句点)

Ada*_*dam 1 xml xpath

有人能告诉我以下XPath表达式之间的区别吗?

/IntuitResponse/QueryResponse/Bill/./Id
/IntuitResponse/QueryResponse/Bill/Id
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用两者来解析文档根目录中的XML文档,我得到了相同的响应.

kjh*_*hes 5

这两个XPath是等价的.

self::node()(.)的缩写在谓词中更有用.例如,

/IntuitResponse/QueryResponse/Bill/Id[. = 'abc']
Run Code Online (Sandbox Code Playgroud)

将仅选择Id字符串值为的元素'abc'.

此外,.引入相对路径也很有用.例如,

./Id
Run Code Online (Sandbox Code Playgroud)

将仅选择那些Id当前上下文节点的子元素.