Проблема с нахождением элементов Namespace

206
20 июля 2021, 18:20

Есть некий xml с пространством имён. Из него я пробую выбрать тэги следующим образом:

  XmlDocument xDoc = new XmlDocument();
        xDoc.Load(fileName);
        // получим корневой элемент
        XmlElement xRoot = xDoc.DocumentElement;
        XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
            nsmgr.AddNamespace("ns2", "");
            nsmgr.AddNamespace("ns3", "");
        XmlElement root = xDoc.DocumentElement;
        XmlNodeList datasved = root.SelectNodes("//ns2:PRequest/@ДатаСвед", nsmgr);
        XmlNodeList idsved = root.SelectNodes("//ns2:PRequest/@ИдСвед", nsmgr);
        XmlNodeList datazapis = root.SelectNodes("//ns2:Свед/@ДатаЗапис", nsmgr);
        XmlNodeList nomerzapis = root.SelectNodes("//ns2:Свед/@НомерЗапис", nsmgr);
        XmlNodeList kodOrgan = root.SelectNodes("//ns2:Свед/ns2:Орган/@Кодorgan", nsmgr);
        XmlNodeList naimOrgan = root.SelectNodes("//ns2:Свед/ns2:Орган/@Наимorgan", nsmgr);

        for (int i = 0; i<datazapis.Count; i++)
        {
            listBox_view.Items.Add(datasved[0].InnerXml + ";" + idsved[0].InnerXml + ";" + 
            datazapis[i].InnerXml + ";" +   nomerzapis[i].InnerXml + ";" + 
            kodOrgan[i].InnerXml + ";" + naimOrgan[i].InnerXml);
        }

Вопрос следующий, не везде есть ДатаЗаписи или НомерЗаписи, парсер берет следующий элемент который найдет, где ДатаЗапис определена. Как сделать чтоб парсер шёл по порядку, если такой элемент не находит, ставил пробел?

READ ALSO
Не корректно переключается язык в мультиязычном приложение (WinForms)

Не корректно переключается язык в мультиязычном приложение (WinForms)

Сделал приложение которые переключается на другие языки программно на лету, но не корректно переключается, нажимаю на одну кнопку переключается...

216
Передача JSON из PHP в NodeJS

Передача JSON из PHP в NodeJS

Отправляю из PHP JSON

268
Задача по ООП (метод)

Задача по ООП (метод)

Задача вся вот: Создать класс Worker, в котором будут следующие private поля - name (имя), age (возраст), salary (зарплата) и public методы setName, getName, setAge, getAge, setSalary,...

370