我可以获得xpath在哪个节点、元素或属性失败的信息吗
我有一些xpath,我正在对XML进行评估我可以获得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
//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'])]
…直到你达到现实与你的期望相背离的程度。然后你就会知道必须在哪里进行调整