Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 相对于节点的XPath-如何选择当前节点?_Xml_Xpath - Fatal编程技术网

Xml 相对于节点的XPath-如何选择当前节点?

Xml 相对于节点的XPath-如何选择当前节点?,xml,xpath,Xml,Xpath,我有一个计算相对于XML文档中节点的XPath表达式(过滤器)的系统。通常情况下,过滤器会匹配某个子节点并检查它是否存在。例如,/div[contains(@class,'soldout')]以筛选出已经售出的产品 现在,我想基于当前节点表达一个过滤器表达式。我尝试了以下方法: .[contains(@class, 'soldout')] 但是系统告诉我这不是有效的XPath “当前节点”或“上下文节点”的正确表达方式是什么?您可能需要self axis。它的工作原理如下: 要计算的节点/se

我有一个计算相对于XML文档中节点的XPath表达式(过滤器)的系统。通常情况下,过滤器会匹配某个子节点并检查它是否存在。例如,
/div[contains(@class,'soldout')]
以筛选出已经售出的产品

现在,我想基于当前节点表达一个过滤器表达式。我尝试了以下方法:

.[contains(@class, 'soldout')]
但是系统告诉我这不是有效的XPath


“当前节点”或“上下文节点”的正确表达方式是什么?

您可能需要self axis。它的工作原理如下:

要计算的节点/self::元素的路径[谓词]

/path to the node/self::*[contains(@class, 'soldout')]

你可能需要自我轴心。它的工作原理如下:

要计算的节点/self::元素的路径[谓词]

/path to the node/self::*[contains(@class, 'soldout')]

XPath 1.0语法中的一个不幸错误是“
”和“
”后面不能跟谓词(这在2.0中已修复)。这是因为规则而产生的

[4] Step ::=    AxisSpecifier NodeTest Predicate*   
                | AbbreviatedStep
(其中
缩写步骤是


因此,尽管规范中说“
”等同于
self::node()
,但严格来说这不是真的,因为
self::node()
后面可以跟谓词,而
后面不能跟谓词。

这是XPath 1.0语法中的一个不幸错误,“
”和“
”不能后跟谓词(这在2.0中已修复)。这是因为规则而产生的

[4] Step ::=    AxisSpecifier NodeTest Predicate*   
                | AbbreviatedStep
(其中
缩写步骤是


因此,尽管规范中说“
”等同于
self::node()
,但严格说来,这并不是真的,因为
self::node()
后面可以跟谓词,而
后面不能跟谓词。

谢谢你的理论背景,我总是对事物为什么是这样感兴趣+谢谢你的理论背景,我总是对为什么事情是这样感兴趣+1.