将XPath设置为“/ root / name [bogus ='dave']”,其中伪节点不存在是合法的。它将在SelectSingleNode上返回null。
但XPath是“/ root / name [5]”,其中root下只有4个名称节点会引发异常。 (至少它在.NET中)。
测试并查看索引值是否有效的好方法是什么?
谢谢 - 戴夫
答案 0 :(得分:1)
在XPath 1.0中,您可以评估此XPath表达式:
bool(/root/name[5])
如果<root>
元素有第五个<name>
子元素,则返回true。
但正如其他人所说,XPath本身不应该因尝试访问不存在的节点而引发异常。但是,如果您尝试取消引用空值,.NET库可能会引发异常。