2009-05-08 4 views
1

Der folgende Code gibt eine Nullreferenceexception da XPathSelectElement nicht durch den XPath-Ausdruck navigieren kann ich gegeben habe:Warum gibt XPathSelectElement eine NullReferenceException?

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

ich diese und überprüft auf Fehler haben, dass der Knoten richtig gelesen wird, und dass die Elemente in Mein XPath wird auf die gleiche Weise wie in meiner XML-Datei großgeschrieben. Ich weiß genau, dass es ein "Auto" -Element mit einem Attribut namens "Beschreibung" gibt. Wieso funktioniert das nicht? Hat es etwas mit einer LocalName-Version von XPath zu tun?

Antwort

1

Wenn Ihr XML-Dokument Namespaces verwendet, könnte dies das Problem sein. Wenn sich // car in einem anderen Namespace als der Standard befindet, kann XPathSelectElement den Knoten nicht finden. (Sie müssen dem korrekten Namespace vorangestellt werden)

0

Selbst wenn Sie das Problem mit einem Namespace behoben haben, müssen Sie noch prüfen, ob Sie ein Auto gefunden haben, bevor Sie nach Attributen suchen.

Verwandte Themen