Вам необходимо сообщить namespaceManager
о значении псевдонима w
.Это звучит , как будто это избыточно (из файла), но это не тот случай , что псевдонимы, которые вы хотите для запроса, обязательно из псевдонимов источника,поскольку значение файла идентично, если я заменю все псевдонимы w
в исходном документе на foo
(при условии, что я также определю foo:xmlns
на то же самое).Или я мог бы использовать xmlns
вместо псевдонимов повсюду.
Следовательно:
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(doc.NameTable);
namespaceManager.Add("w",
"http://schemas.openxmlformats.org/wordprocessingml/2006/main");
XmlNode node = doc.SelectSingleNode("/w:body/w:customXml/w:r", namespaceManager);
Это позволяет вашему запросу выполняться одинаково, независимо от конкретных псевдонимов, используемых в источнике.