我刚刚开始学习XPath,我正在学习没有缩写的语言.
当位置路径以字符'/'开头时,初始上下文节点强制成为根节点...
书中的xml示例:
<widget type="gadget">
...
</widget>
Run Code Online (Sandbox Code Playgroud)
如果我应该写XPath所以我得到type属性为什么我要写:
/子::小部件/属性::类型
而不喜欢这个/ attribute :: type
我是否误解了根节点或?因为我认为'/'和小部件是一样的......
谢谢
小智 5
来自http://www.w3.org/TR/xpath/#attribute-nodes
每个元素节点都有一组相关的属性节点; 元素是每个属性节点的父节点; 但是,属性节点不是其父元素的子节点.
只有元素节点具有属性.
根节点不是元素.来自http://www.w3.org/TR/xpath/#root-node
根节点是树的根.除了作为树的根之外,不会发生根节点.document元素的元素节点是根节点的子节点.根节点还具有处理指令和注释节点的子节点,用于处理在prolog中和文档元素结束之后发生的指令和注释.
因此,您无法像在/@*或中那样选择根节点的属性/attribute::*
你问:
我是否误解了根节点或?
是.您不应该将根节点(抽象)与文档元素混淆(有时也称为元素根)