Pergunta

O código a seguir dá uma NullReferenceException desde XPathSelectElement não pode navegar através da expressão XPath que eu dei:

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

Eu depurado isso e verificou-se que o nó está sendo lido corretamente, e que os elementos em minha XPath são capitalizados da mesma forma que eles estão no meu arquivo XML. Eu sei para um fato de que há um elemento de "carro" com um atributo chamado "descrição". Como é que isso não está funcionando? Será que ela tem algo a ver com a necessidade de uma versão LocalName do XPath?

Foi útil?

Solução

Se o seu documento XML faz uso de namespaces, que pode ser o problema. Se // carro está em outro espaço de nomes diferente do padrão, XPathSelectElement não será capaz de encontrar o nó. (Você terá de prefixo com o namespace correto)

Outras dicas

Mesmo depois de consertar o que é provavelmente um problema namespace, você deve ainda verificar para se certificar de que você encontrou um carro antes de ir à procura de atributos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top