SelectSingleNode, возвращающий ноль для известного хорошего пути узла xml, используя XPath
Рассмотрим этот простой XML-документ. Сериализованный XML, показанный здесь, является результатом XmlSerializer из сложного объекта POCO, схема которого я не могу контролировать.
<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>
Цель состоит в том, чтобы извлечь значение атрибута расширения на узле идентификатора. В этом случае мы используем метод SelectSingleNode и задаем выражение XPath как таковое:
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;
Проблема в том, чтоSelectSingleNode
Метод возвращает значение NULL для данного выражения XPath.
Question: Любые идеи по поводу правильности этого запроса XPath, или почему этот вызов метода + выражение XPath будет возвращать нулевое значение? Возможно, пространства имен являются частью проблемы?