SelectSingleNode gibt unter Verwendung von XPath den Wert null für den Pfad eines bekannten XML-Knotens zurück

Betrachten Sie dieses einfache XML-Dokument. Das hier gezeigte serialisierte XML ist das Ergebnis eines XmlSerializers aus einem komplexen POCO-Objekt, über dessen Schema ich keine Kontrolle habe.

<My_RootNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="">
  <id root="2.16.840.1.113883.3.51.1.1.1" extension="someIdentifier" xmlns="urn:hl7-org:v3" /> 
  <creationTime xsi:nil="true" xmlns="urn:hl7-org:v3" />      
</My_RootNode>

Ziel ist es, den Wert des Erweiterungsattributs auf dem ID-Knoten zu extrahieren. In diesem Fall verwenden wir die SelectSingleNode-Methode und geben einen XPath-Ausdruck als solchen:

XmlNode idNode = myXmlDoc.SelectSingleNode("/My_RootNode/id");
//idNode is evaluated to null at this point in the debugger!
string msgID = idNode.Attributes.GetNamedItem("extension").Value;

Das Problem ist, dass dieSelectSingleNode Methode gibt null für den angegebenen XPath-Ausdruck zurück.

Frage: Irgendwelche Ideen zur Richtigkeit dieser XPath-Abfrage oder warum würde dieser Methodenaufruf + XPath-Ausdruck einen Nullwert zurückgeben? Vielleicht sind die Namespaces Teil des Problems?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage