Как вытащить данные из 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</Сумма> </Месяц> </Продажи>
И необходимо записать данные из этих файлов в плоскую таблицу вида:
в этом случае необходимо в окне с ошибкой нажать Изменить (Edit) и в поле Источник файла (File origin) выбрать нужную кодировку и нажать Ок:
Сразу возникает вопрос: а какая кодировка нужная?
Здесь два варианта:
- можно открыть файл XML обычным блокнотом и обратить внимание на первую строку. Как правило она выглядит примерно так:
<?xml version="1.0" encoding="windows-1251" ?>
здесь нас интересует параметр encoding. То, что идет после него и есть кодировка файла. В данном случае это кодировка 1251 для Windows. Этого более чем достаточно для корректного получения содержимого. - методом подбора. Т.е. поочередно пробовать в окне с ошибкой в поле Источник файла (File origin) выбирать различные кодировки(начать советую с кириллических) до тех пор, пока не появится окно с разбором содержимого.
После того, как нужная кодировка подобрана появится окно содержимого файла:
В нем необходимо указать нужную таблицу(в примере на картинке выше это таблица Месяц ). В окне правее будет отображено содержимое выбранной таблицы(если данных много - то несколько первых строк).
Если файл содержит более одной таблицы, то можно выбрать их все, предварительно установив флажок Несколько элементов и отметить нужные таблицы.
На этом основная работа по загрузке данных закончена. Если нажать Загрузить (Load) , то выбранные таблицы будут выгружены на лист книги Excel, из которой был вызван импорт данных. Если нажать Правка (Edit) , то будет открыт Редактор запросов , в котором можно будет сделать дополнительные преобразования данных: удалить лишние столбцы, заменить данные и т.п. Все зависит от ситуации.
- вкладка Добавить столбец (Add Column) -Пользовательский столбец (Custom Column)
- в появившемся окне указать имя столбца(я его назвал Данные XML ), а в поле Пользовательская формула столбца (Custom column formula) записать следующую формулу:
=Xml.Tables([Content], null, 1251)
где 1251 - кодировка файла XML(как определить кодировку написано выше)
Нажать Ок, в конец таблицы будет добавлен новый столбец.
По сути необязательно запоминать эту формулу. Если возникли проблемы получения данных из папки, то можно один раз получить данные из одного файла(выше в статье описано как это сделать) и в самом первом шаге запроса(как правило он называется Источник) скопировать строку получения данных. Останется только вставить её в качестве формулы в пользовательский столбец и вместо File.Contents("путь к файлу") вставить [Content] - раскрываем данные созданного столбца при помощи значка с двумя развернутыми стрелками:
- Будет создан еще один столбец(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-файла на примере производственного календаря.
- Сделаем таблицу, по которой нужно создать XML файл в Excel и заполним ее данными.
- Создадим и вставим карту XML с необходимой структурой документа.
- Экспортируем данные таблицы в XML формат.
- Наша таблица – производственный календарь.
- Создаем в любом текстовом редакторе (например, «Блокнот») желаемую карту XML структуры для генерации файла сохраним. В данном примере буде использовать следующую карту структуры:
Сохраняем в XML файл.
Другие способы получения XML-данных (схемы):
Как сохранить файл Excel в формате XML
Один из вариантов:
- Нажимаем кнопку Office. Выбираем «Сохранить как» - «Другие форматы».
- Назначаем имя. Выбираем место сохранения и тип файла – XML.
Если выдает ошибку, книгу можно сохранить в виде таблицы XML 2003 либо веб-страницы. С этими форматами проблем, как правило, не возникает.
Как открыть XML файл в Excel
Жмем ОК. С полученной таблицей можно работать, как с любым файлом Excel.
Как преобразовать файл XML в Excel
- Меню «Разработчик» - вкладка «Импорт».
- В диалоговом окне выбираем файл XML, который хотим преобразовать.
- Нажимаем «Импорт». Программа Excel предложит самостоятельно создать схему на основе полученных данных. Соглашаемся – ОК. Откроется окно, где нужно выбрать место для импортируемого файла.
- Назначаем диапазон для импорта. Лучше брать с «запасом». Жмем ОК.
Созданную таблицу редактируем и сохраняем уже в формате Excel.
Как собрать данные из XML файлов в Excel
Принцип сбора информации из нескольких XML-файлов такой же, как и принцип преобразования. Когда мы импортируем данные в Excel, одновременно передается карта XML. В эту же схему можно переносить и другие данные.
Каждый новый файл будет привязываться к имеющейся карте. Каждому элементу в структуре таблицы соответствует элемент в карте. Допускается только одна привязка данных.
Чтобы настроить параметры привязки, откройте в меню «Разработчик» инструмент «Свойства карты».
Доброго времени суток! В данной статье я покажу Вам как можно прочитать и получить данные из 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 в форматы Excel. Выясним, как произвести эту процедуру различными способами.
Процесс конвертации
XML-файлы написаны на специальном языке разметки чем-то похожим на HTML веб-страниц. Поэтому у этих форматов довольно сходная структура. В то же время, Эксель – это в первую очередь программа, имеющая несколько «родных» форматов. Самые известные из них: Книга Excel (XLSX) и Книга Excel 97 – 2003 (XLS). Выясним основные способы конвертации файлов XML в эти форматы.
Способ 1: встроенный функционал Excel
- Запускаем Эксель. Во вкладке «Файл» переходим по пункту «Открыть».
На этом процедура конвертации файла XML в формат Excel через интерфейс программы окончена.
Способ 2: импорт данных
Вышеописанный способ подходит только для файлов XML с самой простой структурой. Более сложные таблицы при конвертации таким способом могут быть переведены некорректно. Но, существует ещё один встроенный инструмент Excel, который поможет корректно произвести импорт данных. Он расположен в «Меню разработчика», которое по умолчанию отключено. Поэтому, прежде всего, его нужно активировать.
-
Перейдя во вкладку «Файл», кликаем по пункту «Параметры».
Таким образом, конвертация в нужном для нас направлении будет совершена с максимально корректным преобразованием данных.
Способ 3: онлайн-конвертер
Тем пользователям, у которых по какой-то причине не установлена на компьютере программа Эксель, но нуждающимся в срочном преобразовании файла из формата XML в EXCEL, можно воспользоваться одним из множества специализированных онлайн-сервисов для конвертации. Одним из наиболее удобных сайтов подобного типа является Convertio.
- Переходим на данный веб-ресурс с помощью любого браузера. На нем можно выбрать 5 способов загрузки конвертируемого файла:
- С жесткого диска компьютера;
- Из онлайн-хранилища Dropbox;
- Из онлайн-хранилища Google Drive;
- По ссылке из интернета.
Данный вариант может послужить хорошей подстраховкой на случай неимения доступа к стандартным инструментам для переформатирования по данному направлению.
Как видим, в самом Экселе есть встроенные инструменты, позволяющие преобразовать файл формата XML в один из «родных» форматов этой программы. Простейшие экземпляры можно легко конвертировать через обычную функцию «Сохранить как…». Для документов с более сложной структурой существует отдельная процедура преобразования через импорт. Те пользователи, которые по какой-либо причине не могут воспользоваться данными инструментами, имеют возможность выполнить задачу с помощью специализированных онлайн-сервисов для конвертации файлов.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Читайте также: