Перейти к содержимому

Как сжать xml файл до 5 мб

  • автор:

Как сжать xml файл до 5 мб

Чтобы сжать все выходные файлы в файл ZIP, нажмите значок « » справа, затем нажмите «Добавить в ZIP».

Имя файла Исходный размер файла Размер выходного файла Размер файла сжат действия
шаги:
  1. Добавить файлы Вы можете перетащить несколько файлов XML в раздел «Добавить файлы». Каждый размер файла может быть до 40 МБ.
  2. компрессия Нет вариантов для сжатия XML. Пакетное сжатие автоматически запускается при загрузке файлов. Пожалуйста, будьте терпеливы, пока файлы загружаются или сжимаются.
  3. Выходные файлы Выходные файлы будут перечислены в разделе «Выходные файлы». Чтобы сжать все выходные файлы в файл ZIP, нажмите значок « » справа, затем нажмите «Добавить в ZIP». Вы можете щелкнуть правой кнопкой мыши на имени файла и нажать «Сохранить ссылку как . », чтобы сохранить файл. Выходные файлы будут автоматически удалены на нашем сервере через два часа, поэтому, пожалуйста, загрузите их на свой компьютер или сохраните их в онлайн-хранилищах, таких как Google Drive или Dropbox, как можно скорее.

Copyright © 2024 Compresss.com — Универсальный файловый компрессор. Все права защищены. политика конфиденциальности
Aconvert.com является дочерним сайтом Compresss.com, он сосредоточен на преобразовании файлов вместо сжатия файлов.

Бесплатно уменьшите размер файла XML онлайн

Пожалуйста, подождите, ваши файлы находятся в обработке

Хотите сообщить об этой ошибке на форум Aspose, чтобы мы могли изучить и решить проблему? Когда ошибка будет исправлена, вы получите уведомление по электронной почте. Форма отчета

Your error has been posted successfully.

Ваши файлы успешно обработаны

Сжать файл XML, чтобы уменьшить размер документов за счет оптимизации содержимого

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

Сжимать мультиформатные файлы

Сжимайте мультиформатные документы, включая DOC, PDF, DOCX, PNG,JPG, HTML, TXT и многие другие.

Сохранить в нужном формате

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

Бесплатная онлайн-операция быстрого сжатия

Молниеносное сжатие выбранных вами документов.

Сжать файлы изображений

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

Изменить порядок сжатых файлов

Расположите и измените порядок сжатых файлов по мере необходимости.

Как сжать XML файлов

  • Загрузите XML файлов, чтобы бесплатно сжать их онлайн.
  • Укажите параметры и нажмите кнопку «КОМПРЕСС», чтобы сжать XML.
  • Загрузите сжатый XML для мгновенного просмотра или отправьте ссылку по электронной почте.

Часто задаваемые вопросы

Как сжать Microsoft PowerPoint и другие файлы?

Просто используйте наш онлайн-компресс compress. Он быстрый, простой в использовании и абсолютно бесплатный. предназначен для быстрого сжатия документов и изображений в Интернете.

Какие форматы поддерживает ваше приложение сжатия?

Мы поддерживаем различные форматы файлов документов и изображений, включая PDF, DOC, DOCX, RTF, ODT, HTML, Markdown, PNG, JPG, TIFF, BMP, MOBI, CHM, WPS, TXT и многие другие.

Сколько файлов я могу сжать за раз?

Вы можете сжимать до 10 файлов одновременно

Каков максимально допустимый размер файла для сжатия?

Размер каждого файла не должен превышать 10 МБ.

Как я могу получить сжатый результат?

В конце процесса сжатия вы получите ссылку для скачивания. Вы можете скачать результат сразу или отправить ссылку на вашу электронную почту.

Как долго мои файлы хранятся на ваших серверах?

Все пользовательские файлы хранятся на серверах Aspose в течение 24 часов. По истечении этого времени они будут автоматически удалены.

Мои файлы в безопасности на ваших серверах?

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

Почему процесс сжатия длится так долго?

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

ИНФОРМАЦИЯ О ФАЙЛЕ

Узнайте о различных форматах файлов

Позвольте себе больше узнать о широко известных форматах файлов документов и изображений.

Расширенный язык разметки

MS Project XML означает расширяемый язык разметки, который похож на HTML, но отличается использованием тегов для определения объектов. Вся идея создания формата файла XML заключалась в том, чтобы хранить и передавать данные, не завися от программных или аппаратных средств. Его популярность связана с тем, что он читается как человеком, так и машиной. Это позволяет ему создавать общие протоколы данных в виде объектов, которые будут храниться и совместно использоваться по сети, такой как World Wide Web (WWW)..

САМЫЙ ПОПУЛЯРНЫЙ

Самые популярные форматы файлов для сжатия

Мы поддерживаем различные форматы файлов документов, Интернета, электронных книг и изображений, включая PDF, DOC, DOCX, RTF, ODT, HTML, Markdown, PNG, JPG, TIFF, BMP, MOBI, CHM, WPS. , TXT и многое другое.

Методы работы с «тяжёлыми» XML

image

На работе попросили провести исследование какими средствами лучше разбирать объёмный XML файл (более 100Mb). Предлагаю сообществу ознакомиться с результатами.

Рассмотрим основные методы работы с XML:

Simple XML

Минусы: работает очень медленно, собирает весь файл в память, дерево составляется в отдельных массив.
Плюсы: простота работы, работа «из коробки» (требует библиотеки libxml которая включена практически на всех серверах)

Пример использования Simple XML

$xml = simplexml_load_file("price.xml"); echo "\n"; foreach ($xml->xpath('/DocumentElement/price') as $producs) < ?>  echo "
name; ?> company; ?> city; ?> amount ?>
\n";
DOM

Минусы: работает очень медленно, как и все предыдущие примеры собирает весь файл в память.
Плюсы: На выходе привычный DOM с которым очень легко работать.

Пример использования DOM

$doc = new DOMDocument(); $doc->load( 'books.xml' ); $books = $doc->getElementsByTagName( "book" ); foreach( $books as $book ) < $authors = $book->getElementsByTagName( "author" ); $author = $authors->item(0)->nodeValue; $publishers = $book->getElementsByTagName( "publisher" ); $publisher = $publishers->item(0)->nodeValue; $titles = $book->getElementsByTagName( "title" ); $title = $titles->item(0)->nodeValue; echo "$title - $author - $publisher\n";

xml_parser и XMLReader.

Предыдущие 2 нам не подходят из-за работы с целым файлом, т.к. файлы у нас бывают по 20-30 Mb, и во время работы с ними некоторые блоки образуют цепочку (массив) в 100> Mb

Оба способа работают чтением файла построчно что подходит идеально для поставленной задачи.

Разница между xml_parser и XMLReader в том что, в первом случае вам нужно будет писать собственные функции которые будут реагировать на начало и конец тэга.

Проще говоря, xml_parser работает через 2 триггера – тэг открыт, тэг закрыт. Его не волнует что там идёт дальше, какие данные используются и т.д. Для работы вы задаёте 2 триггера указывающие на функции обработки.

Пример работы xml_parser

class Simple_Parser < var $parser; var $error_code; var $error_string; var $current_line; var $current_column; var $data = array(); var $datas = array(); function parse($data) < $this->parser = xml_parser_create('UTF-8'); xml_set_object($this->parser, $this); xml_parser_set_option($this->parser, XML_OPTION_SKIP_WHITE, 1); xml_set_element_handler($this->parser, 'tag_open', 'tag_close'); xml_set_character_data_handler($this->parser, 'cdata'); if (!xml_parse($this->parser, $data)) < $this->data = array(); $this->error_code = xml_get_error_code($this->parser); $this->error_string = xml_error_string($this->error_code); $this->current_line = xml_get_current_line_number($this->parser); $this->current_column = xml_get_current_column_number($this->parser); > else < $this->data = $this->data['child']; > xml_parser_free($this->parser); > function tag_open($parser, $tag, $attribs) < $this->data['child'][$tag][] = array('data' => '', 'attribs' => $attribs, 'child' => array()); $this->datas[] =& $this->data; $this->data =& $this->data['child'][$tag][count($this->data['child'][$tag])-1]; > function cdata($parser, $cdata) < $this->data['data'] .= $cdata; > function tag_close($parser, $tag) < $this->data =& $this->datas[count($this->datas)-1]; array_pop($this->datas); > > $xml_parser = new Simple_Parser; $xml_parser->parse('test');

В XMLReader всё проще. Во первых, это класс. Все триггеры уже заданы константами (их всего 17), чтение осуществляется функцией read() которая читает первое вхождение подходящее под заданные триггеры. Далее мы получаем объект в который заносится тип данных (аля триггер), название тэга, его значение. Также XMLReader отлично работает с аттрибутами тэгов.

Пример использования XMLReader

 reader->name == $name && $this->reader->nodeType == XMLReader::ELEMENT) < $result = array(); while (!($this->reader->name == $name && $this->reader->nodeType == XMLReader::END_ELEMENT)) < //echo $this->reader->name. ' - '.$this->reader->nodeType." - ".$this->reader->depth."\n"; switch ($this->reader->nodeType) < case 1: if ($this->reader->depth > 3 && !$ignoreDepth) < $result[$nodeName] = (isset($result[$nodeName]) ? $result[$nodeName] : array()); while (!($this->reader->name == $nodeName && $this->reader->nodeType == XMLReader::END_ELEMENT)) < $resultSubBlock = $this->parseBlock($this->reader->name, 1); if (!empty($resultSubBlock)) $result[$nodeName][] = $resultSubBlock; unset($resultSubBlock); $this->reader->read(); > > $nodeName = $this->reader->name; if ($this->reader->hasAttributes) < $attributeCount = $this->reader->attributeCount; for ($i = 0; $i < $attributeCount; $i++) < $this->reader->moveToAttributeNo($i); $result['attr'][$this->reader->name] = $this->reader->value; > $this->reader->moveToElement(); > break; case 3: case 4: $result[$nodeName] = $this->reader->value; $this->reader->read(); break; > $this->reader->read(); > return $result; > > public function parse($filename) < if (!$filename) return array(); $this->reader = new XMLReader(); $this->reader->open($filename); // begin read XML while ($this->reader->read()) < if ($this->reader->name == 'store_categories') < // while not found end tag read blocks while (!($this->reader->name == 'store_categories' && $this->reader->nodeType == XMLReader::END_ELEMENT)) < $store_category = $this->parseBlock('store_category'); /* Do some code */ $this->reader->read(); > $this->reader->read(); > > // while > // func > $xmlr = new StoreXMLReader(); $r = $xmlr->parse('example.xml'); 

Тест производительности

Код генератора example.xml

openMemory(); $xmlWriter->startDocument('1.0', 'UTF-8'); $xmlWriter->startElement('shop'); for ($i=0; $istartElement('product'); $xmlWriter->writeElement('id', $productId); $xmlWriter->writeElement('name', 'Some product name. ID:' . $productId); $xmlWriter->endElement(); // Flush XML in memory to file every 1000 iterations if (0 == $i%1000) < file_put_contents('example.xml', $xmlWriter->flush(true), FILE_APPEND); > > $xmlWriter->endElement(); // Final flush to make sure we haven't missed anything file_put_contents('example.xml', $xmlWriter->flush(true), FILE_APPEND);

Результаты тестирования (чтение без разбора данных)

Характеристики тестовой среды
Ubuntu 16.04.1 LTS
PHP 7.0.15
Intel® Core(TM) i5-3550 CPU @ 3.30GHz, 16 Gb RAM, 256 SSD

Метод Время выполнения (19 Mb) Время выполнения (190 Mb)
Simple XML 0.46 сек 4.56 сек
DOM 0.52 сек 4.09 сек
xml_parse 0.22 сек 2.25 сек
XML Reader 0.26 сек 2.18 сек

Как уменьшить размер файла и ускорить его

Если в один прекрасный момент вы осознаете, что ваш основной рабочий файл в Excel разбух до нескольких десятков мегабайт и во время открытия файла можно смело успеть налить себе кофе, то попробуйте пробежаться по описанным ниже пунктам — возможно один или несколько из них укоротят вашего «переростка» до вменяемых размеров и разгонят его «тормоза» 🙂

Проблема 1. Используемый диапазон листа больше, чем нужно

  1. Выделите первую пустую строку под вашей таблицей
  2. Нажмите сочетание клавиш Ctrl+Shift+стрелка вниз – выделятся все пустые строки до конца листа.
  3. Удалите их, нажав на клавиатуре Ctrl+знак минус или выбрав на вкладке Главная – Удалить – Удалить строки с листа (Home – Delete – Delete rows) .
  4. Повторите то же самое со столбцами.
  5. Повторите все вышеописанные процедуры на каждом листе, где при нажатии на Ctrl+End активная ячейка перемещается не на фактическую последнюю ячейку с данными а «в пустоту» ниже и/или правее.
  6. Сохраните файл (обязательно, иначе изменения не вступят в силу!)

Если в вашей книге очень много таких листов, то проще, наверное, использовать короткий макрос.

Проблема 2. Используется старый формат XLS вместо новых XLSX, XLSM и XLSB

Много лет и версий подряд еще с начала девяностых в Excel был один формат файлов — XLS. Это, конечно, убирало проблемы совместимости, но, сам по себе, этот формат давно устарел и имел много неприятных недостатков (большой размер, непрозрачность внутренней структуры данных, легкую повреждаемость и т.д.)

Начиная с верии Excel 2007 Microsoft ввела новые форматы сохранения файлов, использование которых заметно облегчает жизнь и — ваши файлы:

  • XLSX — по сути является зазипованным XML. Размер файлов в таком формате по сравнению с Excel 2003 меньше, в среднем, в 5-7 раз.
  • XLSM — то же самое, но с поддержкой макросов.
  • XLSB — двоичный формат, т.е. по сути — что-то вроде скомпилированного XML. Обычно в 1.5-2 раза меньше, чем XLSX. Единственный минус: нет совместимости с другими приложениями кроме Excel, но зато размер — минимален.

Проблема 3. Избыточное форматирование

Сложное многоцветное форматирование, само-собой, негативно отражается на размере вашего файла. А условное форматирование еще и ощутимо замедляет его работу, т.к. заставляет Excel пересчитывать условия и обновлять форматирование при каждом чихе.

Оставьте только самое необходимое, не изощряйтесь. Особенно в тех таблицах, которые кроме вас никто не видит. Для удаления только форматов (без потери содержимого!) выделите ячейки и выберите в выпадающем списке Очистить — Очистить форматы (Clear — Clear Formats) на вкладке Главная (Home) :

Особенно «загружают» файл отформатированные целиком строки и столбцы. Т.к. размер листа в последних версиях Excel сильно увеличен (>1 млн. строк и >16 тыс. столбцов), то для запоминания и обрабоки подобного форматирования нужно много ресурсов. В Excel 2013-2016, кстати, появилась надстройка Inquire, которая содержит инструмент для быстрого избавления от подобных излишеств — кнопку Удалить избыточное форматирование (Clean Excess Cell Formatting) :

reduce_size9.png

Она мгновенно удаляет все излишнее форматирование до конца листа, оставляя его только внутри ваших таблиц и никак не повреждая ваши данные. Причем может это сделать даже для всех листов книги сразу.

Если вы не видите у себя в интерфейсе вкладку Inquire, то ее необходимо подключить на вкладке Разработчик — Надстройки COM (Developer — COM Addins) .

Проблема 4. Ненужные макросы и формы на VBA

Большие макросы на Visual Basic и особенно пользовательские формы с внедренной графикой могут весьма заметно утяжелять вашу книгу. Для удаления:

  1. нажмите Alt+F11, чтобы войти в редактор Visual Basic
  2. найдите окно Project Explorer’а (если его не видно, то выберите в меню View — Project Explorer)
  3. удалите все модули и все формы (правой кнопкой мыши — Remove — дальше в окне с вопросом о экспорте перед удалением — No):

Также код может содержаться в модулях листов — проверьте их тоже. Также можно просто сохранить файл в формате XLSX без поддержки макросов — все макросы и формы умрут автоматически. Также можно воспользоваться инструментом Очистить книгу от макросов из надстройки PLEX.

Проблема 5. Именованные диапазоны

Если в вашем файле используются именованные диапазоны (особенно с формулами, динамические или получаемые при фильтрации), то имеет смысл от них отказаться в пользу экономии размера книги. Посмотреть список имеющихся диапазонов можно нажав Ctrl+F3 или открыв окно Диспетчера имен (Name Manager) на вкладке Формулы (Formulas) :

Также вычищайте именованные диапазоны с ошибками (их можно быстро отобрать с помощью кнопки Фильтр в правом верхнем углу этого окна) — они вам точно не пригодятся.

Проблема 6. Фотографии высокого разрешения и невидимые автофигуры

Если речь идет о фотографиях, добавленных в книгу (особенно когда их много, например в каталоге продукции), то они, само-собой, увеличивают размер файла. Советую сжимать их, уменьшая разрешение до 96-150 точек на дюйм. На экране по качеству это совершенно не чувствуется, а размер файла уменьшает в разы. Для сжатия воспользуйтесь кнопкой Сжать рисунки (Compress pictures) на вкладке Формат (Format) :

Кроме видимых картинок на листе могут содержаться и невидимые изображения (рисунки, фотографии, автофигуры). Чтобы увидеть их, выделите любую картинку и на вкладке Формат (Format) нажмите кнопку Область выделения (Selection Pane) .

Для удаления вообще всех графических объектов на текущем листе можно использовать простой макрос:

Sub Delete_All_Pictures() 'макрос для удаления всех картинок на текущем листе Dim objPic As Shape For Each objPic In ActiveSheet.Shapes objPic.Delete Next objPic End Sub

Проблема 7. Исходные данные сводных таблиц

По-умолчанию Excel сохраняет данные для расчета сводной таблицы (pivot cache) внутри файла. Можно отказаться от этой возможности, заметно сократив размер файла, но увеличив время на обновление сводной при следующем открытии книги. Щелкните правой кнопкой мыши по сводной таблице и выберите команду Свойства таблицы (Pivot Table Properties) — вкладка Данные (Data) — снять флажок Сохранять исходные данные вместе с файлом (Save source data with file):

Если у вас несколько сводных таблиц на основе одного диапазона данных, то сократить размер файла здорово помогает метод, когда все сводные таблицы после первой строятся на основе уже созданного для первой таблицы кэша. В Excel 2000-2003 это делается выбором переключателя на первом шаге Мастера сводных таблиц при построении:

В Excel 2007-2016 кнопку Мастера сводных таблиц нужно добавлять на панель вручную — на ленте такой команды нет. Для этого щелкните по панели быстрого доступа правой кнопкой мыши и выберите Настройка панели быстрого доступа (Customize Quick Access Toolbar) и затем найдите в полном списке команд кнопку Мастер сводных таблиц (PivotTable and PivotChart Wizard) :

Проблема 8. Журнал изменений (логи) в файле с общим доступом

Если в вашем файле включен общий доступ на вкладке Рецензирование — Доступ к книге (Review — Share Workbook) , то внутри вашего файла Excel на специальном скрытом листе начинает сохраняться вся история изменений документа: кто, когда и как менял ячейки всех листов. По умолчанию, такой журнал сохраняет данные изменений за последние 30 дней, т.е. при активной работе с файлом, может запросто занимать несколько мегабайт.

Мораль: не используйте общий доступ без необходимости или сократите количество дней хранения данных журнала, используя вторую вкладку Подробнее (Advanced) в окне Доступ к книге. Там можно найти параметр Хранить журнал изменений в течение N дней (Keep change history for N days) или совсем отключить его:

reduce_size8.png

Проблема 9. Много мусорных стилей

Про эту пакость я уже подробно писал ранее в статье о том, как победить ошибку «Слишком много форматов ячеек». Суть, если кратко, в том, что если вы разворачиваете на вкладке Главная список Стили ячеек (Home — Cell Styles) и видите там очень много непонятных и ненужных стилей, то это плохо — и для размера вашего файла Excel и для его быстродействия.

too-many-formats2.png

Удалить ненужные стили можно с помощью макроса или готовой команды из надстройки PLEX.

Проблема 10. Много примечаний

Примечания к ячейкам, конечно, не самый вредный момент из всех перечисленных. Но некоторые файлы могут содержать большое количество текста или даже картинок в примечаниях к ячейкам. Если примечания не содержат полезной для вас информации, то их можно легко удалить с помощью команды на вкладке ГлавнаяОчистить — Очистить примечания (Home — Clear — Clear Comments) .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *