edit: использовать XElement, это намного проще.
Теперь вы используете пространства имен, поэтому вам нужно указать их также с помощью XNamespace
Если вы не уверены, где он ломается, просто разбейте ваш запрос на несколько строк, как показано ниже, чтобы вы могли пройти и определить, где происходит ошибка.
XNamespace ns = "http://www.somewebsite.com";
XElement root = XElement.Load(@"c:\nota.xml");
var infNFe = root.Element(ns + "infNFe");
var ide = infNFe.Element(ns + "ide");
var cUF = ide.Element(ns + "cUF");
var value = cUF.Value;
Чтобы прояснить проблему с пространством имен, если у вас есть XML как
<a xmlns="namespace">
<b>123</b>
</a>
тогда a.Element("b")
не существует. Вам нужно опросить элемент b с пространством имен namespace
. Так же, как пространства имен где-либо еще в C # - это что-то вроде измерений. Вы смотрите на правильном пути, но в неправильном измерении.