D1m0nd
@D1m0nd
junior C# developer

Как прочитать xml в c#?

Добрый день, как правильно прочитать xml средствами .net
Вот собственно часть xml , который необходимо прочитать
<КонтактнаяИнформация xmlns="http://www.v8.1c.ru/ssl/contactinfo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Представление="141400, Московская обл, Химки г, Коммунальный проезд, владение 30"><Состав xsi:type="Адрес" Страна="Россия"><Состав xsi:type="АдресРФ"><СубъектРФ>Московская обл</СубъектРФ><Город>Химки г</Город><Улица>Коммунальный проезд</Улица><ДопАдрЭл ТипАдрЭл="10100000" Значение="141400"/><ДопАдрЭл><Номер Тип="1020" Значение="30"/></ДопАдрЭл></Состав></Состав></КонтактнаяИнформация>


Вот код на с помощью которого я пытаюсь его прочитать
Путь я задаю вроде как правильный, но коллекция все равно пустая, не пойму почему, resultStr - строка содержащая xml
XmlDocument xml = new XmlDocument();
            xml.LoadXml(resultStr);
            XmlNodeList xnList = xml.SelectNodes("/КонтактнаяИнформация/Состав/Состав");
            Console.WriteLine(xnList.Count);
            foreach (XmlNode xn in xnList)
            {
                string city = xn["Город"].InnerText;
                Console.WriteLine("City: {0}", city);
            }
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
D1m0nd
@D1m0nd Автор вопроса
junior C# developer
XmlDocument xml = new XmlDocument();
            xml.Load(path);
            foreach (XmlElement element in xml.GetElementsByTagName("Состав"))
            {
                if (element.Attributes["xsi:type"].InnerText == "АдресРФ")
                {
                    foreach (XmlElement e in element)
                        if (e.Name == "Город")
                        {
                            Console.WriteLine("{0} = {1}", e.Name, e.InnerText);
                        }
                        
                }
            }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы