Чем открыть xml файл большого размера
Методы работы с «тяжёлыми» XML
На работе попросили провести исследование какими средствами лучше разбирать объёмный XML файл (более 100Mb). Предлагаю сообществу ознакомиться с результатами.
Рассмотрим основные методы работы с XML:
Simple XML
Минусы: работает очень медленно, собирает весь файл в память, дерево составляется в отдельных массив.
Плюсы: простота работы, работа «из коробки» (требует библиотеки libxml которая включена практически на всех серверах)
Минусы: работает очень медленно, как и все предыдущие примеры собирает весь файл в память.
Плюсы: На выходе привычный DOM с которым очень легко работать.
xml_parser и XMLReader.
Предыдущие 2 нам не подходят из-за работы с целым файлом, т.к. файлы у нас бывают по 20-30 Mb, и во время работы с ними некоторые блоки образуют цепочку (массив) в 100> Mb
Оба способа работают чтением файла построчно что подходит идеально для поставленной задачи.
Разница между xml_parser и XMLReader в том что, в первом случае вам нужно будет писать собственные функции которые будут реагировать на начало и конец тэга.
Проще говоря, xml_parser работает через 2 триггера – тэг открыт, тэг закрыт. Его не волнует что там идёт дальше, какие данные используются и т.д. Для работы вы задаёте 2 триггера указывающие на функции обработки.
В XMLReader всё проще. Во первых, это класс. Все триггеры уже заданы константами (их всего 17), чтение осуществляется функцией read() которая читает первое вхождение подходящее под заданные триггеры. Далее мы получаем объект в который заносится тип данных (аля триггер), название тэга, его значение. Также XMLReader отлично работает с аттрибутами тэгов.
Тест производительности
Результаты тестирования (чтение без разбора данных)
7 способов открыть файл формата XML для чтения и редактирования
Документы в формате XML запускаются в любых текстовых редакторах, браузерах, а также в специальных онлайн-сервисах. Расскажем, как открыть файл XML: с тегами и без них, только для просмотра или для редактирования.
XML: что за формат и где часто используется
XML – язык разметки. С помощью него пользователи группируют, структурируют данные, которые представлены в виде обычного текста или таблицы. Для создания структуры (иерархии) используют самописный синтаксис – теги. Их придумывает сам автор документа. На рисунке ниже показан текст, обернутый в произвольные теги: (от кого послание), (кому), (заголовок послания), (само послание).
Язык XML используют для передачи данных между разными видами приложений без потери их структуры. Формат отличается надежностью. Повредить информацию в таких файлах сложнее, поэтому документы, которые публикуют в интернете, часто идут именно с этим расширением. Файлы xml встречаются на ГосУслугах, в Росреестре и на других государственных сайтах.
Документ xml можно открыть разными способами. Выбор программы или веб-сервиса зависит от того, в каком виде должен быть представлен текст: с тегами или без них, с возможностью редактирования или просто чтение.
Только просмотр текста/таблицы доступен в любом браузере, в Microsoft Word и Excel. Редактировать файл можно в онлайн-сервисах и в стандартном «Блокноте» в Windows.
Программы для просмотра и редактирования файлов XML
Программы Microsoft Office есть практически на каждом компьютере с Windows, поэтому часто для запуска xml не нужно ничего дополнительно устанавливать.
Если Офиса у вас нет, и вы не хотите скачивать целый пакет, чтобы открыть один единственный файл, воспользуйтесь «Блокнотом» или сторонним приложением NotePad++.
Чтобы установить Word на ПК, нужно скачать целый пакет Microsoft Office, где будет сам текстовый редактор, Excel (для работы с таблицами) и Power Point (для создания презентаций).
Не все версии Microsoft Word умеют открывать документы xml без тегов. Подойдут варианты Word 2007 и выше. Версии ниже показывают информацию только с тегами.
В Word вы сможете просматривать текст, отправлять его на печать в принтер. Редактирование документа здесь недоступно.
Как открыть файл XML в Word:
Excel
Если данные документа представлены в виде таблицы, используйте другую программу из пакета Microsoft Office – инструмент Excel.
Открыть документ в Excel можно таким же образом, как и в Word. Кликнуть по файлу правой клавишей, а затем в списке «Открыть с помощью» выбрать Excel.
Если Excel в списке не оказалось, используйте другой метод запуска:
Стандартный «Блокнот»
В «Блокноте» откроется текст, обернутый в теги. При необходимости вы сможете его отредактировать в окне.
Запустить файл можно через то же контекстное меню документа. Выбираете «Открыть с помощью», нажимаете на «Блокнот».
Если «Блокнота» в списке приложений не оказалось, используйте другой способ:
Через Google Chrome и другие браузеры
Для Google Chrome и любого другого браузера действует тот же способ запуска: через пункт «Открыть с помощью» в контекстном меню файла. Можно выбрать «Гугл Хром» или любой другой веб-обозреватель: Internet Explorer, Yandex, Opera и т. д.
Еще один способ – перетаскивание файла на окно браузера. Откройте новую пустую вкладку обозревателя (обычно это иконка в виде плюса на панели с вкладками). Перетащите файл xml мышкой на любую область пустой вкладки.
Подождите, пока браузер загрузит документ в свое окно.
NotePad++
В NotePad++ можно читать и редактировать готовые xml-документы, а также создавать новые. Приложение также работает с другими форматами веб-файлов, например, с YML.
При установке программы можно выбрать русский язык интерфейса. Плюс NotePad++ в том, что она выделяет корневую структуру кода, что упрощает работу с документом. В «Блокноте», к примеру, теги идут чуть ли не сплошным текстом.
Как открыть XML-файл в NotePad++:
Онлайн-сервисы для редактирования файлов XML
Для работы онлайн-сервисов понадобится стабильный скоростной интернет. Рассмотрим два инструмента: XML Grid и TutorialsPoint.
XmlGrid
Сервис простой и функциональный. Здесь можно создавать свои файлы xml, редактировать готовые документы. Документ можно загрузить двумя способами: вставить ссылку на файл в интернете либо загрузить физический документ с жесткого диска ПК.
Интерфейс у сервиса на английском языке, но разобраться в нем сможет каждый:
TutorialsPoint
Сервис работает с множеством файлов: XML-документы, изображения, программные коды. Интерфейс тоже на английском языке.
Как работать в сервисе:
Если вам нужно лишь прочитать содержимое файла xml, выбирайте браузер, Word или Excel (если документ представлен в виде таблицы, а не обычным текстом). Для редактирования можно использовать стандартный «Блокнот», стороннюю программу NotePad++ либо онлайн-сервисы: XML Grid или TutorialsPoint.
Какой программой открывать файлы xml на Windows, Android и других устройствах
Вы приводили в порядок свой компьютер, когда нашли файл, который никогда не видели раньше. Вы пытались открыть его из любопытства, но не нашли способа сделать это. Возможно, вы не установили нужную программу или пропустили несколько шагов. В любом случае, не беспокойтесь: если вы читаете это руководство, значит помощь близка. Если это файл с расширением .xml, тогда нет ни малейшей проблемы: я объясню, как его открыть, но сначала позвольте мне кратко объяснить, с каким типом документа вы имеете дело.
В отличие от файла HTML, который является структурным документом с предопределенными тегами, XML является документом, который действует как контейнер для хранения данных, которые могут использоваться другим программным обеспечением. XML-файлы легко открываются: просто используйте соответствующую программу. Также этот тип файлов можно открыть с помощью онлайн-сервисов и приложений для мобильных устройств Android / iOS.
Чтобы открыть файл XML в Windows, вам не нужно загружать сложное дополнительное программное обеспечение, поскольку на вашем компьютере уже установлены некоторые базовые программы, которые позволяют просматривать xml за несколько кликов.
Открыть xml в блокноте или WordPad
Простой блокнот Windows способен мгновенно открывать файлы XML. Как это сделать? Просто щелкните правой кнопкой мыши по рассматриваемому файлу и в контекстном меню, которое будет показано, выберите пункты Открыть с помощью → Блокнот. И, вуаля! Перед Вам раскроется содержание данного файла!
Даже простой текстовый редактор Windows, такой как WordPad, способен открывать файлы XML, так как эти типы файлов можно просматривать как простое текстовое содержимое: не забывайте, что файлы XML являются не чем иным, как контейнера данных.
Хотите знать, как открыть файл XML с WordPad? Это действительно легко! Щелкните правой кнопкой мыши по рассматриваемому файлу, а затем в контекстном меню выберите пункты Открыть с помощью → WordPad. Проще некуда, я прав?
Открыть xml с помощью браузера
Mozilla Firefox, Opera, Edge и другие интернет-браузеры без проблем откроют файл XML.
Чтобы сделать это, щелкните правой кнопкой мыши по рассматриваемому файлу и в появившемся вам контекстном меню щелкните элемент Открыть с помощью. Среди предложенных вариантов, выберите элемент, который относится к названию браузера, который вы хотите использовать.
Файл XML будет открыт непосредственно в новой вкладке браузера, и вы сможете прочитать его текстовое содержимое.
Как открыть xml-файл на Mac
Если вы используете Mac и хотите понять, как открыть файл XML, вам не нужно усложнять свою жизнь установкой сложного программного обеспечения. Всё, что вам нужно, это открыть браузер Safari, который, как и любой другой браузер, может легко отображать файлы с этим расширением.
Чтобы открыть файл XML, щелкните правой кнопкой мыши по нему и в контекстном меню выберите пункты Открыть с помощью → Safari. В мгновение ока файл будет открыт с помощью стандартного веб-браузера macOS.
Кроме того, вы можете использовать программное обеспечение для заметок TextEdit, уже предустановленное в macOS. Чтобы открыть файл XML с помощью этого приложения, щелкните файл правой кнопкой мыши и в раскрывающемся меню Открыть с помощью выберите элемент TextEdit. И вот ваш файл открыт.
Как открыть xml-файл в Excel
Если вы обычно используете программное обеспечение пакета Office, вам будет приятно узнать, что некоторые из программ этого набора позволяют открывать файлы XML. Например, Word может отображать содержимое файлов этого типа, делая это также, как я уже показал вам для Блокнота или WordPad.
Даже Excel – популярное программное обеспечение для работы с электронными таблицами – абсолютно точно может отобразить XML-файл. Однако, рассматриваемый файл будет отображаться в виде таблицы XML, а не в виде простого текста, как в случае с Word.
Чтобы открыть xml-файл в Microsoft Excel, запустите программу и в меню «Файл» выберите пункт Открыть → Обзор, чтобы найти нужный XML-файл. В открывшемся диалоговом меню откройте файл в виде таблицы XML, и всё готово! Вы видели, как это было легко? Могу поспорить, вы не думали, что это будет так просто.
Как открыть xml-файл онлайн
Вот некоторые интернет-сайты, которые предлагают просмотр файлов XML: это простые в использовании и по-настоящему доступные инструменты.
Codebeautify
Первый веб-сайт, который выполняет задачу программы для просмотра XML-файлов – XML Viewer codebeautify.org. Для того, чтобы использовать этот инструмент, перейдите по адресу codebeautify.org.
Интерфейс XML Viewer невероятно прост и функционален: следуя указаниям, которые вы найдете в следующих строках, вам не составит труда использовать его для просмотра файлов XML.
XMLGrid
Если вы просто хотите открыть указанный вами XML-файл и не хотите читать содержимое в разных форматах или структурах, я рекомендую веб-сайт XML Grid.net, позволяющий открывать XML-файл в несколько кликов из браузера.
XMLViewer
Среди многочисленных интернет-сайтов, выполняющих задачу открытия и просмотра файлов XML, один из тех, что выделяется своим увлекательным графическим интерфейсом, – это xmlviewer.org.
Как вы можете догадаться по доменному имени, основная функция заключается в том, чтобы позволить вам просмотреть содержимое файла XML. Сайт делает это очень хорошо и, кроме того, имеет пользовательский интерфейс, который действительно радует глаз.
При желании вы можете отформатировать текст в формат Json, удалить лишний код (кнопка Minify ) и активировать древовидное представление (кнопка Tree View ).
Как открыть xml файл на смартфоне и планшете
Открыть файл XML на смартфоне или планшете Android очень легко. Так как xml-файл, по сути, является текстовым файлом, любой текстовый редактор устройства Android может открыть его. После загрузки файла на устройство, откройте его из файлового менеджера вашего устройства: вы увидите, что он откроется в мгновение ока с помощью инструмента «Текстовый редактор».
Если вы используете устройство iOS, загрузите файл из облачной службы, которую вы использовали, чтобы перенести его на мобильное устройство, например, iCloud. Будучи файлом, содержащим текстовые данные, просто нажмите на него, чтобы просмотреть как обычную текстовую заметку. Как вы уже видели, вам не нужно никакого стороннего приложения, чтобы открывать и просматривать xml-файл.
Как открыть xml файлы в PDF
Хотите открыть файл XML с помощью программного обеспечения для управления PDF? У меня есть решения, которые наверняка могут быть полезны для вас. На самом деле, вы должны знать, что в большинстве случаев XML-файл нельзя открыть напрямую с помощью программного обеспечения PDF, но вы можете преобразовать его.
Хотя существует некоторое программное обеспечение, позволяющее просматривать XML в формате PDF, например, для электронного выставления счетов, в некоторых случаях необходимо сначала выполнить его преобразование. Эта операция возможна с использованием одного из множества решений, проиллюстрированных в предыдущих главах, с помощью фукнции печать в формат PDF. Вы также можете использовать инструменты, которые позволяют выполнить немедленное преобразование XML в PDF.
Как открыть файл xml.p7m
Если вы получили электронный счет в формате XML или XML.P7M, использование одного из инструментов, предложенных в предыдущих главах, не является адекватным решением. Это связано с тем, что предлагаемое программное обеспечение позволяет просматривать текстовое содержимое файла XML без учета их структуры.
В связи с этим вам нужен инструмент, который может открывать этот тип файла, поддерживая структуру и форматирование счета, чтобы правильно его прочитать.
Элегантное чтение больших XML файлов
Введение.
Я же хочу показать как можно читать XML файл элегантно. А пока сформулирую демонстрационную задачу.
Демонстрационная задача
На входе файл Контрагенты.xml следующей структуры и содержания:
Требуется загрузить данные файла в справочник «Контрагенты», который имеет реквизит «Телефоны». Подразумевается, что в реквизите «Телефоны» указано несколько телефонов. При загрузке необходимо производить поиск контрагента по коду и только если контрагент не найден, то создавать нового.
Реализация
Реализуем загрузку контрагентов в обработке «Загрузка контрагентов». При нажатии на кнопку «Загрузить» выполняется следующий код:
Сначала создается универсальная обработка ЭлегантноеЧтениеXML и вызывается метод Прочитать. Первым аргументом передается имя XML файла. Вторым аргументом передается специальный объект-делегат. Обработка, читая последовательно файл XML, запускает методы объекта-делегата при начале чтения узла, завершении чтения узла и некоторых других случаях.
Объект-делегат должен реализовывать следующие методы:
Параметр Узел помимо того, что содержит информацию о текущем узле, он еще ссылается на родительский узел. Родительские узлы существуют пока обрабатываются все его дочерние узлы. Иными словами получить доступ к родительским узлам вы можете всегда.
В нашем примере в качестве объекта-делегата передан текущий экземпляр обработки «Загрузка контрагентов», модуль объекта которой выглядит следующим образом:
Обратите внимание, что в приведенном коде нет ни циклов, ни условий на сравнение типа и имени узла. На мой взгляд, он читается очень легко.
Замечания
Мне пришлось указывать теги в квадратных скобках, так как угловые «проглатываются» инфостартом.
Замечание 1: Разметка XML регистрозависима, язык программирования 1С регистронезависим, поэтому если в XML файле встречаются теги [Телефон] и [телефон], то обрабатывать их будет один и тот же метод УзелТелефонНачало(ЧтениеXML, Узел). Для того чтобы их различать нужно использовать Узел.ЛокальноеИмя.
Замечание 2: В файле XML может быть два тега [Телефон] из разных URI пространства имен. Обрабатывать оба тега будет один и тот же метод УзелТелефонНачало(ЧтениеXML, Узел). Для того чтобы их различать нужно использовать Узел.URIПространстваИмен
Замечание 3: Согласно спецификации XML имя тега может содержать не только буквы, цифры и знак подчеркивания, а еще и другие символы, например «-» или «.». В XML допустим, например, такой тег [a-b.c]. Поэтому все недопустимые для идентификатора 1С символы игнорируются, так, для примера выше, тег будет обработан методом УзелABCНачало(ЧтениеXML, Узел).
Замечание 4: Один и тот же тег может быть дочерним для разных родительских тегов. Так, например, родительским тегом для [Телефон] может быть и [Контрагент] и [КонтактноеЛицо]. Обрабатывать тег всегда будет УзелТелефонНачало(ЧтениеXML, Узел). Если обработка тега зависит от родительского тега, то вы можете ориентироваться на Узел.Родитель.
Замечание 5: Значение узла, т.е. текст который находится между открывающим и закрывающим тегами, можно получить как Узел.Значение, но сделать это можно только при завершении обработки узла, т.е. в методе УзелЗавершение(Узел) или Узел<Тег>Завершение(Узел).
Помимо описанных особенностей наверняка есть и другие.
Заключение
Уверен, что текущая реализация не идеальна, но я и не ставил перед собой такую задачу. Я лишь хотел продемонстрировать подход, который мне кажется элегантным.
Чем открыть XML: подбираем варианты на любой случай
Открываем файлы в офлайн-режиме
Этот тип файлов имеет широкое распространение, в связи с чем популярность вопроса становится вполне оправданной. Так как документ содержит текстовую информацию, то разумно предположить, что для его открытия могут быть применимы типы программ, поддерживающих текстовый формат.
Блокнот
Один из первых вариантов, который приходит в голову опытному пользователю. Связано это с тем, что в большинстве своём код HTML правится именно в этой программе, значит и XML поддержит такой вариант.
Microsoft Word
WordPad также отлично подойдёт для просмотра содержимого XML-файла. Для выбора программы необходимо щёлкнуть по документу правой кнопкой мыши и выбрать команду «открыть с помощью», в появившемся списке выбираем нужный текстовый редактор и получаем требующийся результат.
Notepad++
Многие считают эту программу одной из самых удобных для просмотра и редактирования XML-файлов. В первую очередь — это обусловлено высокой скоростью работы, в отличие от Word, редактор открывает в считанные секунды даже самый большой документ, при этом также быстро перестраивает содержимое в таблицу.
Кроме этого, программа имеет большое количество возможностей, которые не реализованы в других текстовых редакторах. В случае недостаточности имеющихся функций, открытий код редактора всегда можно дополнить новыми плагинами или модулями.
Microsoft Excel
Табличный редактор тоже способен открыть и показать содержимое нужного документа. Удобство этой программы в том, что она автоматически предоставляет содержимое в виде удобной для восприятия таблицы.
К недостаткам использования можно отнести тот факт, что ввиду ограничения на количество строк очень большой XML-файл может не открыться. Прежде чем открыть XML-файл в Excel, необходимо выбрать в качестве способа XML-таблицу.
Специализированные редакторы
Если встает вопрос чем открыть XML чтобы отредактировать его и внести изменения, то лучше отдать предпочтение специальному софту. Есть несколько вариантов таких разработок:
Это далеко не все варианты, есть и другие программы, созданные непосредственно для работы с файлами этого формата. Важно понимать, что каждая из них имеет собственные возможности, которые отличаются от других аналогов. Поэтому выбирать софт нужно в каждом конкретном случае в соответствии с потребностями.
Чем открыть XML в онлайн
Бывают ситуации, когда открыть и просмотреть содержимое файла XML необходимо, а на компьютере нет ни одной подходящей программы. Несмотря на широкий выбор возможных вариантов иногда случается и такое.
В этом случае пользователь может обратиться к онлайн-сервисам. Чем открыть XML через интернет?
Браузер
Эту возможность поддерживают все современные браузеры. Но важно учитывать, что документ не содержит информации о том, как именно должны быть отображено содержимое, соответственно браузер откроет его «как есть».
Для того чтобы открыть нужный файл, необходимо щёлкнуть по нему правой кнопкой мыши и выбрать соответствующий браузер в качестве программы, если обозреватель не отображается в списке сразу, то можно найти его через «обзор». Файл будет открыт в новой вкладке, в случае если документ повреждён, то браузер не сможет его открыть и придётся искать офлайн-вариант.
Xmlgrid.net
Самый популярный онлайн-сервис для работы с документами формата XML. Он позволяет открывать, просматривать и вносить изменения в документы.
Для работы с редактором достаточно перейти на его страницу в интернете. С помощью команды Open File загружаем нужный документ и выполняем все задуманные действия. Интерфейс реализован на английском языке, но в общих чертах все интуитивно понятно.
CodeBeautify
Ещё один онлайн-инструмент пригодный для работы с файлами данного формата. Прежде чем начать деятельность требуется пройти на сайт сервиса и выбрать тип документа, с которым планируется работа.
Помимо открытия и редактирования документа, сервис позволяет произвести конвертацию содержимого в разные форматы.
XSL Transformation
Онлайн-сервис предназначен в первую очередь для преобразования и валидации имеющегося кода. Кроме того, имеет немало полезных инструментов, которые пригодятся мастеру, регулярно сталкивающемуся с необходимостью взаимодействия с документами формата XML.
Таким образом, при необходимости работы с расширяемым языком всегда можно найти подходящую программу или онлайн-сервис, независимо от возможностей ПК. Тем не менее большинство инструментов позволяют только просмотреть содержимое и преобразовать его в удобную для восприятия таблицу. Для профессиональной работы с XML стоит отдать предпочтение специализированным программам.