§

Вставте XML

§

Параметри

Режим
Відступ
XML-декларація
Самозакривні порожні теги
§

Відформатований результат

xml

Pretty-printing XML приносить користь скрізь, де структуровані документи потрапляють під очі людини: RSS-стрічки, що споживають подкасти та агрегатори новин; SOAP-кінцеві точки, що обмінюються XML-корисними навантаженнями; документи HL7, що переміщують медичні записи між системами; OOXML всередині корпоративних файлів Microsoft Word, Excel та PowerPoint — це XML в основі; файли sitemap.xml, що щодня сканують Google і Bing. Системи збірки також покладаються на це — Maven POM-файли, Gradle XML-скрипти збірки та SVG-векторні ресурси виграють від чистого відступу при порівнянні в pull request.

Що таке форматування XML?

XML (Extensible Markup Language) — це стандартизований W3C текстовий формат для структурованих документів та обміну даними. Форматування — також відоме як pretty-printing або beautifying — бере правильно сформований XML і повторно розставляє відступи, щоб кожен елемент, атрибут, коментар, інструкція обробки та секція CDATA були зручними для сканування. Розібране дерево документа зберігається точно; змінюються лише пробіли між елементами.

Як працює форматування XML?

Ваше введення обробляється повністю у вашому браузері за допомогою вбудованих API DOMParser та XMLSerializer плюс кастомний рекурсивний відступник. Основні кроки:

  1. Ваше введення зчитується дослівно з текстового поля — кожен байт, який ви вставили, зберігається в пам'яті локально.
  2. Браузер парсить його за допомогою new DOMParser().parseFromString(text, 'application/xml'). Якщо введення не є правильно сформованим, парсер вбудовує вузол <parsererror>, чиє текстове навантаження містить підказки рядка та стовпця рушія — вони відображаються дослівно в смузі помилок.
  3. При успішному парсингу кастомний відступник обходить DOM-дерево глибиною першим, видаючи кожен елемент, набір атрибутів, секцію CDATA, коментар та інструкцію обробки на власному рядку з поточною глибиною. Самозакривні порожні теги враховуються, коли опція увімкнена.
  4. Режим мініфікації перевертає конвеєр: XMLSerializer().serializeToString(doc) видає однорядкову форму, потім захищений regex видаляє пробіли між елементами, не торкаючись тексту всередині блоків CDATA або не-пробільних текстових вузлів.
  5. Результат записується в текстове поле «лише для читання», смуга помилок очищується, а кнопка «Завантажити» упаковує результат у файл .xml, готовий до відправки або прикріплення до тікету.

Навіщо форматувати XML цим інструментом?

  • Конфіденційність: кожен прохід парсингу, форматування та мініфікації відбувається у вашому браузері. XML ніколи не досягає наших серверів — без завантаження, без телеметрії, без облікового запису.
  • Точні помилки: коли введення є невалідним, парсер виводить точний рядок і стовпець, що рушій браузера сам звітує, а не синтетичне здогадування — ті самі числа, що ви б побачили в DevTools.
  • Вірний round-trip: відформатуйте, потім мініфікуйте, і ви отримаєте байт-еквівалент вашого оригінального документа (з урахуванням опції XML-декларації) — форматування ніколи не ре-канонізує простори імен або не переписує порядок атрибутів.
  • Швидко: чистий DOMParser плюс ~60-рядковий відступник обробляють багатомегабайтні SOAP-конверти та OOXML-шматки миттєво, без зовнішньої бібліотеки для завантаження.

Які поширені застосування форматування XML?

Pretty-printing XML зустрічається у веб-публікаціях, корпоративній інтеграції та архівуванні даних:

  • Перевірка RSS/Atom-стрічок: вставте тіло подкасту або новинної стрічки для підтвердження метаданих каналу, порядку елементів та префіксів просторів імен до публікації.
  • Налагодження SOAP: форматуйте конверт, скопійований з Wireshark або журналу SOAP-клієнта, щоб секції Header, Body та Fault були видні з першого погляду.
  • Аудит sitemap: повторно відступіть sitemap.xml, отриманий від конкурента або вашого власного стейджинг-сайту, для підрахунку записів та підтвердження hreflang-альтернативів на URL.

Як виглядає приклад форматування XML?

Вставлення 3-елементного <feed><entry><title>Hello</title></entry></feed> та натискання Форматувати з опцією відступу 2 пробіли дає чотирирядковий документ з кожним елементом на власному рядку, відступленим за глибиною. Перемикання на Мініфікувати того самого введення згортає його назад до оригінального байт-рядка. Round-tripping є безвтратним для будь-якого правильно сформованого документа.

Чи це працює офлайн?

Так. Конвеєр форматування та мініфікації — це чистий DOMParser + XMLSerializer плюс крихітний рекурсивний відступник, все виконується у вкладці браузера. Нічого не завантажується, жоден service worker не передає ваше введення, і сторінка не робить жодних мережевих запитів для самого кроку форматування. Єдиний вихідний трафік — стандартні ресурси завантаження сторінки (CSS, шрифти, аналітика) — ваш XML ніколи не досягає Ultim8Soft.

Чи форматування змінює документ?

Жодних семантичних змін. Форматування лише переписує пробіли між елементами. Назви елементів, значення атрибутів, текстовий вміст, навантаження CDATA, коментарі та інструкції обробки зберігаються байт у байт. Оголошення просторів імен та префікси зберігаються точно так, як написано у введенні — форматер не ре-канонізує та не перевпорядковує атрибути. Результат розбирається в те саме DOM-дерево, що й введення, з урахуванням необов'язкового перемикача XML-декларації.

Як обробляються CDATA / коментарі / інструкції обробки?

Кожна видається дослівно на власному рядку з поточною глибиною відступу. Навантаження CDATA обгортаються в <![CDATA[…]]> без повторного відступу всередині — специфікація каже, що вміст CDATA є непрозорим, тому форматер ніколи його не торкається. Коментарі використовують <!-- … -->; інструкції обробки використовують <?target data?>. Всі три виживають у round-trip форматувати → мініфікувати → форматувати з їхнім вмістом у цілості.

У чому різниця між форматуванням та мініфікацією XML?

Форматування розширює пробіли, щоб люди могли читати дерево документа; мініфікація видаляє їх назад для транспорту та зберігання. Обидва операції над розібраним DOM, а не над сирим байт-рядком, тому round-trip форматувати → мініфікувати на правильно сформованому документі дає байт-еквівалент оригінальної мініфікованої форми. Використовуйте напрямок форматування, коли потрібно читати або порівнювати XML-навантаження, та напрямок мініфікації, коли хочете відправити його через тарифний API-шлюз або вбудувати в інший документ.

Цей XML-форматер використовує той самий парсер, що ваш браузер використовує для AJAX XHR-відповідей та SVG-документів, тому будь-який правильно сформований XML — RSS, Atom, SOAP, sitemap, OOXML, SVG — обробляється чисто. Вставте будь-який XML вище, скопіюйте результат або завантажте як .xml.