C# 从xpathnavigator获取结果
有没有办法检查为什么xPathNavigator.evaluate()调用不返回节点 例如,给定以下xml文档:C# 从xpathnavigator获取结果,c#,xpath,evaluate,navigator,C#,Xpath,Evaluate,Navigator,有没有办法检查为什么xPathNavigator.evaluate()调用不返回节点 例如,给定以下xml文档: <Vehicles> <car> <wheels>4</wheels> <seats>5</seats> </car> </Vehicles> 我想要某种形式的指示,表明没有选择节点是因为“seats=2”条款,而不是因为轮子的数量 这在某种程度上是可
<Vehicles>
<car>
<wheels>4</wheels>
<seats>5</seats>
</car>
</Vehicles>
我想要某种形式的指示,表明没有选择节点是因为“seats=2”条款,而不是因为轮子的数量
这在某种程度上是可能的吗
以下xPath表达式:
//Vehicles[((car[wheels = 4 and seats = 2]))]
//Vehicles[((car[wheels = 4 and seats = 2]))]
//Vehicles[car[wheels = 4][seats = 2]]
我想知道节点没有被选中
因为条款“座椅=2”,而不是因为车轮的数量
这在某种程度上是可能的吗
如果您使用以下表达式,这是可能的:
//Vehicles[car[wheels = 4]]
这里,如果结果不是null(或XmlNode的空集合),则您将知道如果下一个表达式:
//Vehicles[((car[wheels = 4 and seats = 2]))]
//Vehicles[((car[wheels = 4 and seats = 2]))]
//Vehicles[car[wheels = 4][seats = 2]]
选择0个节点,则其原因是有车子节点有4个轮子,但没有一个节点正好有2个座位。您无法自动回答“为什么”这类问题。XPath表达式不选择任何节点的原因不计其数。如果节点位于错误的命名空间中怎么办?如果您写“//vehicles”而不是“//vehicles”,会怎么样
最好是定义要检查和测试的条件类型。我不能自己编写xPath查询来进行测试,因为我要测试的xPath查询是在运行时生成的。除非有办法把“where”分开clauses@user1041808:你应该编辑问题并解释一下。如果您无法控制XPath表达式的运行时生成,那么几乎不可能处理XPath表达式并从中提取两个表达式——当然,除非您编写自己的XPath解析器。