Почему XPathSelectElement дает исключение NullReferenceException? - PullRequest
1 голос
/ 09 мая 2009

Следующий код дает исключение NullReferenceException, поскольку XPathSelectElement не может перемещаться по указанному выше выражению XPath:

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

Я отлаживал это и проверял, что узел читается правильно, и что элементы в моем XPath пишутся с прописной буквы так же, как в моем файле XML. Я точно знаю, что существует элемент «car» с атрибутом «description». Почему это не работает? Это как-то связано с необходимостью версии XPath LocalName?

Ответы [ 2 ]

1 голос
/ 09 мая 2009

Если ваш XML-документ использует пространства имен, это может быть проблемой. Если // car находится в другом пространстве имен, чем по умолчанию, XPathSelectElement не сможет найти узел. (Вам нужно будет поставить префикс с правильным пространством имен)

0 голосов
/ 09 мая 2009

Даже после того, как вы исправите то, что, вероятно, является проблемой пространства имен, вы все равно должны проверить, что вы нашли машину, прежде чем искать атрибуты.

...