Как вытащить данные из xml файла

Обновлено: 07.07.2024

Что имеем: есть несколько файлов в формате XML с данными примерно следующего вида:

<?xml version="1.0" encoding="windows-1251" ?> <Продажи> <Месяц номер="01"> <Дата>01.01.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>1849941.38</Сумма> </Месяц> <Месяц номер="02"> <Дата>01.02.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>1057377.21</Сумма> </Месяц> <Месяц номер="03"> <Дата>01.03.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>2041079.96</Сумма> </Месяц> <Месяц номер="04"> <Дата>01.04.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>1128102.22</Сумма> </Месяц> <Месяц номер="05"> <Дата>01.05.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>991735.68</Сумма> </Месяц> <Месяц номер="06"> <Дата>01.06.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>1502531.50</Сумма> </Месяц> <Месяц номер="07"> <Дата>01.07.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>1904990.78</Сумма> </Месяц> <Месяц номер="08"> <Дата>01.08.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>1370.86</Сумма> </Месяц> <Месяц номер="09"> <Дата>01.09.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>1670190.78</Сумма> </Месяц> <Месяц номер="10"> <Дата>01.10.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>1449435.21</Сумма> </Месяц> <Месяц номер="11"> <Дата>01.11.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>1456267.16</Сумма> </Месяц> <Месяц номер="12"> <Дата>01.12.2013</Дата> <Менеджер>Иванов В.В</Менеджер> <Сумма>1196971.27</Сумма> </Месяц> </Продажи>

Результат

И необходимо записать данные из этих файлов в плоскую таблицу вида:

Смена кодировки XML в Power Query

в этом случае необходимо в окне с ошибкой нажать Изменить (Edit) и в поле Источник файла (File origin) выбрать нужную кодировку и нажать Ок:

Сразу возникает вопрос: а какая кодировка нужная?
Здесь два варианта:

  1. можно открыть файл XML обычным блокнотом и обратить внимание на первую строку. Как правило она выглядит примерно так:
    <?xml version="1.0" encoding="windows-1251" ?>
    здесь нас интересует параметр encoding. То, что идет после него и есть кодировка файла. В данном случае это кодировка 1251 для Windows. Этого более чем достаточно для корректного получения содержимого.
  2. методом подбора. Т.е. поочередно пробовать в окне с ошибкой в поле Источник файла (File origin) выбирать различные кодировки(начать советую с кириллических) до тех пор, пока не появится окно с разбором содержимого.

Выбор таблицы XML в предпросмотре Power Query

После того, как нужная кодировка подобрана появится окно содержимого файла:

В нем необходимо указать нужную таблицу(в примере на картинке выше это таблица Месяц ). В окне правее будет отображено содержимое выбранной таблицы(если данных много - то несколько первых строк).
Если файл содержит более одной таблицы, то можно выбрать их все, предварительно установив флажок Несколько элементов и отметить нужные таблицы.
На этом основная работа по загрузке данных закончена. Если нажать Загрузить (Load) , то выбранные таблицы будут выгружены на лист книги Excel, из которой был вызван импорт данных. Если нажать Правка (Edit) , то будет открыт Редактор запросов , в котором можно будет сделать дополнительные преобразования данных: удалить лишние столбцы, заменить данные и т.п. Все зависит от ситуации.

Не использовать исходное имя столбца как префикс

  1. вкладка Добавить столбец (Add Column) -Пользовательский столбец (Custom Column)
  2. в появившемся окне указать имя столбца(я его назвал Данные XML ), а в поле Пользовательская формула столбца (Custom column formula) записать следующую формулу:
    =Xml.Tables([Content], null, 1251)
    где 1251 - кодировка файла XML(как определить кодировку написано выше)
    Нажать Ок, в конец таблицы будет добавлен новый столбец.
    По сути необязательно запоминать эту формулу. Если возникли проблемы получения данных из папки, то можно один раз получить данные из одного файла(выше в статье описано как это сделать) и в самом первом шаге запроса(как правило он называется Источник) скопировать строку получения данных. Останется только вставить её в качестве формулы в пользовательский столбец и вместо File.Contents("путь к файлу") вставить [Content]
  3. раскрываем данные созданного столбца при помощи значка с двумя развернутыми стрелками:
  4. Будет создан еще один столбец(Table), который так же надо будет раскрыть при помощи значка с двумя развернутыми стрелками. Здесь лучше будет заранее снять галку с пункта Использовать исходное имя столбца как префикс (Use original column name as prefix)

    Это нужно для того, чтобы столбцы с данными таблиц XML в результате были названы как есть, без добавления имени столбца, из которого были развернуты.

По сути нужного результата добились. Остальные действия - это различного рода преобразования данных. Для загрузки данных на лист результата необходимо перейти на вкладку Главная (Home) -Закрыть и загрузить (Close & Load) .
Если в папку будут добавлены/удалены файлы или информация в них будет изменена, то необходимо будет перейти на лист, на который выгружена результирующая таблица, выделить любую ячейку в ней, перейти на вкладку Запрос (Query) и нажать Обновить (Refresh) . Так же это можно сделать с вкладки Данные (Data) -Обновить все (Refresh all) . Но в этом случае будут обновлены все запросы и сводные таблицы, что не всегда нужно, особенно если запросов много.

К слову, подобный подход можно использовать и с файлами других типов(txt, htm и т.д.), для которых запрос получения данных из папки не работает корректно.

Microsoft Excel – удобный инструмент для организации и структурирования самых разнообразных данных. Он позволяет обрабатывать информацию разными методами, редактировать массивы данных.

Рассмотрим возможности использования его для формирования и обработки файлов веб-приложений. На конкретном примере изучим основы работы с XML в Excel.

Как создать XML-файл из Excel

XML – стандарт файла для передачи данных в Сети. Excel поддерживает его экспорт и импорт.

Рассмотрим создание XML-файла на примере производственного календаря.

  1. Сделаем таблицу, по которой нужно создать XML файл в Excel и заполним ее данными.
  2. Создадим и вставим карту XML с необходимой структурой документа.
  3. Экспортируем данные таблицы в XML формат.

Таблица производственный календарь.

  1. Наша таблица – производственный календарь.
  2. Создаем в любом текстовом редакторе (например, «Блокнот») желаемую карту XML структуры для генерации файла сохраним. В данном примере буде использовать следующую карту структуры:

Сохраняем в XML файл.

Другие способы получения XML-данных (схемы):

Как сохранить файл Excel в формате XML

Один из вариантов:

  1. Нажимаем кнопку Office. Выбираем «Сохранить как» - «Другие форматы».
  2. Назначаем имя. Выбираем место сохранения и тип файла – XML.

Если выдает ошибку, книгу можно сохранить в виде таблицы XML 2003 либо веб-страницы. С этими форматами проблем, как правило, не возникает.

Как открыть XML файл в Excel

Жмем ОК. С полученной таблицей можно работать, как с любым файлом Excel.

Как преобразовать файл XML в Excel

  1. Меню «Разработчик» - вкладка «Импорт».
  2. В диалоговом окне выбираем файл XML, который хотим преобразовать.
  3. Нажимаем «Импорт». Программа Excel предложит самостоятельно создать схему на основе полученных данных. Соглашаемся – ОК. Откроется окно, где нужно выбрать место для импортируемого файла.
  4. Назначаем диапазон для импорта. Лучше брать с «запасом». Жмем ОК.

Созданную таблицу редактируем и сохраняем уже в формате Excel.

Как собрать данные из XML файлов в Excel

Принцип сбора информации из нескольких XML-файлов такой же, как и принцип преобразования. Когда мы импортируем данные в Excel, одновременно передается карта XML. В эту же схему можно переносить и другие данные.

Каждый новый файл будет привязываться к имеющейся карте. Каждому элементу в структуре таблицы соответствует элемент в карте. Допускается только одна привязка данных.

Чтобы настроить параметры привязки, откройте в меню «Разработчик» инструмент «Свойства карты».

Как можно прочитать и получить данные из XML-файла в JavaScript?

Доброго времени суток! В данной статье я покажу Вам как можно прочитать и получить данные из XML-файла в JavaScript.

<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">

<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<script src="https://myrusakov.ru/script.js"></script>
</body>
</html>

XML-файл с данными:

<?xml version="1.0" encoding="utf-8" ?>
<tasks>
<task >
<name>Научиться работать с XML в JavaScript</name>
<description>
Надо посмотреть как открыть, записать и сохранить значение в XML файл на JS
</description>
</task>
<task >
<name>Научиться работать с XML в JavaScript</name>
<description>
Надо посмотреть как открыть, записать и сохранить значение в XML файл на JS
</description>
</task>
<task >
<name>Научиться работать с XML в JavaScript</name>
<description>
Надо посмотреть как открыть, записать и сохранить значение в XML файл на JS
</description>
</task>
</tasks>

JavaScript код


// GET запрос на получение данных из xml файла
const RequestObject =

// получаем ссылку на задачу
const _item = $(item);

//console.log(id, name, desc)

// ошибку выводим в консоль
error: (error) => console.log(error)
>

// здесь непосредственно выполняем запрос
$.ajax(RequestObject);

Вот таким образом, мы можем прочитать XML-файл в JavaScript.


Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

Комментарии ( 0 ):

Конвертация из XML в Microsoft Excel

XML является одним из самых распространенных форматов для хранения данных и обмена ими между различными приложениями. С данными работает и программа Microsoft Excel, поэтому очень актуальным является вопрос конвертации файлов из стандарта XML в форматы Excel. Выясним, как произвести эту процедуру различными способами.

Процесс конвертации

XML-файлы написаны на специальном языке разметки чем-то похожим на HTML веб-страниц. Поэтому у этих форматов довольно сходная структура. В то же время, Эксель – это в первую очередь программа, имеющая несколько «родных» форматов. Самые известные из них: Книга Excel (XLSX) и Книга Excel 97 – 2003 (XLS). Выясним основные способы конвертации файлов XML в эти форматы.

Способ 1: встроенный функционал Excel

  1. Запускаем Эксель. Во вкладке «Файл» переходим по пункту «Открыть».

Переход к открытию файла в Microsoft Excel

Открытие файла XML в Microsoft Excel

Переход во вкладку Файл в Microsoft Excel

Переход к сохранению файла в Microsoft Excel

Переход к выбору формата в Microsoft Excel

Выбор формата в Microsoft Excel

Сохранение файла в Microsoft Excel

На этом процедура конвертации файла XML в формат Excel через интерфейс программы окончена.

Способ 2: импорт данных

Вышеописанный способ подходит только для файлов XML с самой простой структурой. Более сложные таблицы при конвертации таким способом могут быть переведены некорректно. Но, существует ещё один встроенный инструмент Excel, который поможет корректно произвести импорт данных. Он расположен в «Меню разработчика», которое по умолчанию отключено. Поэтому, прежде всего, его нужно активировать.

    Перейдя во вкладку «Файл», кликаем по пункту «Параметры».

Переход в параметры в Microsoft Excel

Включение режима разработчика в Microsoft Excel

Переход к импорту XML в Microsoft Excel

Импорт файла XML в Microsoft Excel

Координаты вставки таблицы в Microsoft Excel

Переход к сохранению нового файла в Microsoft Excel

Сохранение файла в программе Microsoft Excel

Таким образом, конвертация в нужном для нас направлении будет совершена с максимально корректным преобразованием данных.

Способ 3: онлайн-конвертер

Тем пользователям, у которых по какой-то причине не установлена на компьютере программа Эксель, но нуждающимся в срочном преобразовании файла из формата XML в EXCEL, можно воспользоваться одним из множества специализированных онлайн-сервисов для конвертации. Одним из наиболее удобных сайтов подобного типа является Convertio.

  1. Переходим на данный веб-ресурс с помощью любого браузера. На нем можно выбрать 5 способов загрузки конвертируемого файла:
    • С жесткого диска компьютера;
    • Из онлайн-хранилища Dropbox;
    • Из онлайн-хранилища Google Drive;
    • По ссылке из интернета.

Переход к загрузке файла на Convertio

Загрузка файла на Convertio

Выбор формата файла на Convertio

Запуск преобразования на Convertio

Данный вариант может послужить хорошей подстраховкой на случай неимения доступа к стандартным инструментам для переформатирования по данному направлению.

Как видим, в самом Экселе есть встроенные инструменты, позволяющие преобразовать файл формата XML в один из «родных» форматов этой программы. Простейшие экземпляры можно легко конвертировать через обычную функцию «Сохранить как…». Для документов с более сложной структурой существует отдельная процедура преобразования через импорт. Те пользователи, которые по какой-либо причине не могут воспользоваться данными инструментами, имеют возможность выполнить задачу с помощью специализированных онлайн-сервисов для конвертации файлов.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: