Добрый день. есть XML файл
<issuance xmlns="http://www.w3schools.com" sender="35">
<general>
<number>35</number>
<dateIssuance>2016-12-22</dateIssuance>
<dateTransaction>2016-12-10</dateTransaction>
<documentType>ORIGINAL</documentType>
</general>
<seller>
//тут тоже есть поля и т.д.
</seller>
</issuance>
Передаю в метод загруженый xml документ и пытаюсь получить значения полей
XmlNode doc = docs;
XmlNode selectNodeGeneral = doc.SelectSingleNode("/issuance/general");
elnVat.number = selectNodeGeneral.SelectSingleNode("number").InnerText;
elnVat.dateIssuance = selectNodeGeneral.SelectSingleNode("dateIssuance").InnerText;
но строчка XmlNode selectNodeGeneral = doc.SelectSingleNode("/issuance/general");возвращaет null, если убрать xmlns="http://www.w3schools.com" sender="35"и оставить только ` то код начинает работать.
Подскажите как мне быть?
Нужно указывать полное имя ноды, вместе с namespace, через XmlNamespaceManager, примерно так:
// считая, что docs - это XmlDocument
XmlNamespaceManager ns = new XmlNamespaceManager(docs.NameTable);
ns.AddNamespace("w3s", "http://www.w3schools.com");
XmlNode doc = docs;
XmlNode selectNodeGeneral = doc.SelectSingleNode("/w3s:issuance/w3s:general", ns);
elnVat.number = selectNodeGeneral.SelectSingleNode("w3s:number", ns).InnerText;
elnVat.dateIssuance = selectNodeGeneral.SelectSingleNode("w3s:dateIssuance", ns).InnerText;
Продвижение своими сайтами как стратегия роста и независимости