为什么XPathSelectElement会给出NullReferenceException?

时间:2009-05-08 21:09:46

标签: c# linq xpath nullreferenceexception

以下代码给出了NullReferenceException,因为XPathSelectElement无法浏览我给出的XPath表达式:

String description = (String)node.XPathSelectElement("//car").Attribute("description");

我调试了这个并验证了节点是否正确读取,并且我的XPath中的元素大小写与我们在XML文件中的大小相同。我知道有一个带有“描述”属性的“car”元素。为什么这不起作用?是否与需要LocalName版本的XPath有关?

2 个答案:

答案 0 :(得分:1)

如果您的XML文档使用名称空间,那可能就是问题所在。如果// car位于另一个名称空间而不是默认名称空间,则XPathSelectElement将无法找到该节点。 (您必须使用正确的命名空间作为前缀)

答案 1 :(得分:0)

即使您修复了可能存在命名空间问题的问题,您仍然必须检查以确保在寻找属性之前找到了汽车。