有没有办法检查为什么xPathNavigator.evaluate()调用没有返回节点?
例如,给出以下xml文档:
<Vehicles>
<car>
<wheels>4</wheels>
<seats>5</seats>
</car>
</Vehicles>
和以下xPath表达式:
//Vehicles[((car[wheels = 4 and seats = 2]))]
我想要某种迹象表明由于“seat = 2”这个子句没有选择节点,不是因为轮子的数量。
这有可能吗?
答案 0 :(得分:2)
“为什么”不是您可以自动化的问题。 XPath表达式不会选择任何节点的原因有很多。如果节点位于错误的命名空间怎么办?如果你写“//车辆”而不是“//车辆”怎么办?
您可以做的最好的事情是定义您要检查的各种条件并进行测试。
答案 1 :(得分:0)
以下xPath表达式:
//Vehicles[((car[wheels = 4 and seats = 2]))]
我想要某种迹象表明该节点未被选中 因为“座位= 2”这个条款并不是因为车轮的数量。
这有可能吗?
如果你使用这些表达式,这是可能的:
//Vehicles[car[wheels = 4]]
这里如果结果不为null(或者是XmlNode的空集合),那么你将知道如果下一个表达式:
//Vehicles[car[wheels = 4][seats = 2]]
选择0个节点,原因是有car
个孩子有4个轮子,但没有一个有2个座位。