Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 1
Регистрация: 03.06.2009
Сообщений: 67

Разбор XML файла

28.02.2017, 09:27. Показов 2551. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Имеется очень большой XML файл вот такого вида (я укоротил его)
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="windows-1251"?>
<AutoAuditState>
    <ImportScenario id="ImpBezen">
<RunState success="0" startDatetime="18 января 2017 г. 2:00:19" packetFileName="D:\_AuditLocal\Archive\2017_01_17_23_00\ExpADS2017_01_17_23_00.xml" logFileName="D:\_AuditLocal\Archive\2017_01_17_23_00\ExpADS2017_01_17_23_00_import.log" stopDatetime="18 января 2017 г. 2:00:57">В процессе импорта обработано:  1378 записей таблицы аудита, 1 семантических записей, 213 графических объектов.
Произошло:  0 предупреждений, 0 ошибок, 0 критических ошибок.
Импорт длился 00:00:34.</RunState>
<RunState success="1" startDatetime="19 января 2017 г. 2:00:16" packetFileName="D:\_AuditLocal\Archive\2017_01_18_08_35\ExpADS2017_01_18_08_35.xml" logFileName="D:\_AuditLocal\Archive\2017_01_18_08_35\ExpADS2017_01_18_08_35_import.log" stopDatetime="19 января 2017 г. 2:00:22">В процессе импорта обработано:  11 записей таблицы аудита, 0 семантических записей, 0 графических объектов.
Произошло:  0 предупреждений, 0 ошибок, 0 критических ошибок.
Импорт длился 00:00:04.</RunState>
<RunState success="1" startDatetime="19 января 2017 г. 2:00:22" packetFileName="D:\_AuditLocal\Archive\2017_01_18_23_00\ExpADS2017_01_18_23_00.xml" logFileName="D:\_AuditLocal\Archive\2017_01_18_23_00\ExpADS2017_01_18_23_00_import.log" stopDatetime="19 января 2017 г. 2:00:50">В процессе импорта обработано:  1088 записей таблицы аудита, 0 семантических записей, 146 графических объектов.
Произошло:  0 предупреждений, 0 ошибок, 0 критических ошибок.
Импорт длился 00:00:24.</RunState></ImportScenario>
 
</AutoAuditState>
Как получить значения success и startDatetime из ПОСЛЕДНЕГО узла RunState (с самой свежей датой)? Самого нижнего. Второй день уже изучаю xml науку и, честно говоря, уже запутался...
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.02.2017, 09:27
Ответы с готовыми решениями:

Разбор XML
После http запроса мне приходит ответ в формате xml &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;response list=&quot;true&quot;&gt; ...

Разбор XML
Есть xml &lt;struct&gt; &lt;data name=&quot;title&quot;&gt;111&lt;/data&gt; &lt;data name=&quot;message&quot;&gt;1 1 1&lt;/data&gt; &lt;/struct&gt; &lt;struct&gt; &lt;data...

Разбор xml
Добрый день. Подскажите, пожалуйста, почему разбор не работает foreach (XElement level1Element in...

3
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
28.02.2017, 11:13
Gillan,
C#
1
2
3
4
XElement root = XDocument.Load("file.xml").Root;
XElement state = root.Elements("ImportScenario").Elements("RunState").Last();
var success = int.Parse(state.Attribute("success").Value);
var startDate = DateTime.Parse(state.Attribute("startDatetime").Value);
1
64 / 64 / 35
Регистрация: 14.12.2015
Сообщений: 145
28.02.2017, 11:24
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Gillan, привет! Если без доп. проверок, то можно так:
C#
1
2
3
4
5
6
7
8
9
10
var success = XDocument.Load("d://file.xml")
                .Descendants("RunState")
                .Select(s =>
                    new
                    {
                        startDate = DateTime.Parse(s.Attribute("startDatetime").Value),
                        success = s.Attribute("success").Value
                    })
                .OrderByDescending(s => s.startDate)
                .First().success;
2
1 / 1 / 1
Регистрация: 03.06.2009
Сообщений: 67
28.02.2017, 11:43  [ТС]
Все так просто и прозрачно) Спасибо за оперативную помощь! Вдохновлен и буду дальше делать программу)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.02.2017, 11:43
Помогаю со студенческими работами здесь

Разбор XML
Всем привет. Работаю в больнице, каждый месяц сдаем реестр по пролеченным больным. Написал программку по нахождению ошибок в файле...

Разбор XML LINQ
есть XML в котором есть такой элемент &lt;N&gt; &lt;I Name=&quot;VASYA&quot; Old=&quot;99&quot; Life=&quot;Moscow&quot;&gt;&lt;/I&gt; &lt;I Name=&quot;Oleg&quot; Old=&quot;88&quot;...

Разбор XML фрагмента
Пожалуйста помогите!!! Уже не знаю что делать. есть XML фрагмент: &lt;root&gt; &lt;ZAP&gt; &lt;ID_PAC&gt;1&lt;/ID_PAC&gt; ...

Разбор XML-документа
Доброго времени суток. Есть вот такой XML-документ. XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(filePath); XmlElement...

Разбор xml файла
Пытаюсь разобрать xml файл, выдаёт ошибку: ORA-19228: XPST0008 - необъявленный идентификатор: префикс 'ed', локальное имя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru