Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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
我可以获得xpath在哪个节点、元素或属性失败的信息吗_Xpath - Fatal编程技术网

我可以获得xpath在哪个节点、元素或属性失败的信息吗

我可以获得xpath在哪个节点、元素或属性失败的信息吗,xpath,Xpath,我有一些xpath,我正在对XML进行评估 //view/section/row [(cell/data[@value='Other Roles']) and (cell/data[contains(@value,'336')]) and (cell/data[contains(@value,'0')]) and (cell/data[contains(@value,'320')]) and (cell/data[contains(@value,'16')]) and (cell/dat

我有一些xpath,我正在对XML进行评估

//view/section/row
[(cell/data[@value='Other Roles'])  and
(cell/data[contains(@value,'336')]) and
(cell/data[contains(@value,'0')])   and
(cell/data[contains(@value,'320')]) and
(cell/data[contains(@value,'16')])  and
(cell/data[contains(@value,'0')]) ]
执行此操作时,xpath可能不可用,例如行中没有包含数据336的单元格,我可以在失败的地方获取该信息吗


提供此信息的任何代码/UTIL

一般而言,

即使结果集为空,也不意味着它失败。它只是一个空的结果集,这是一个有效的结果。事实上,您的假设是错误的,因为XPath没有失败

如果要检查XPath是否为空序列,可以使用
fn:empty()
进行检查,例如
empty(单元格/数据[contains(@value,'336')])


使用XPath 2.0,还可以使用
fn:error()
函数引发自己的错误。但是,我看不出您希望如何以一种有用的方式将其应用于此特定示例中。

我还没有看到任何自动执行此操作的工具,但是手动执行此类健全性检查非常有用:

首先检查您是否匹配
视图

//view
//view/section/row
//view/section/row[(cell/data[@value='Other Roles'])]
然后
部分

//view/section
然后

//view
//view/section/row
//view/section/row[(cell/data[@value='Other Roles'])]
然后是特定的

//view
//view/section/row
//view/section/row[(cell/data[@value='Other Roles'])]
…直到你达到现实与你的期望相背离的程度。然后你就会知道必须在哪里进行调整