XML Formatter

Naformátujte a zkrášlete XML se zvýrazněním syntaxe

Zkusit příklad

XML Vstup

Naformátované XML

Běží lokálně · Bezpečné pro vkládání tajných údajů
Naformátované XML se zobrazí zde…

Co je formátování XML?

Formátování XML (také nazývané zkrášlování nebo odsazování XML) je proces přidání konzistentního odsazení a zalomení řádků do XML dokumentu tak, aby byla viditelná jeho hierarchická struktura. Surové XML z API, generátorů konfigurace nebo serializátorů se často dodává jako jediný řádek bez mezer mezi značkami. XML formátovač tento dokument analyzuje do stromové struktury a znovu ho serializuje s předvídatelným odsazením. Výsledek je vizuálně přehledný a snáze srozumitelný, přičemž logický obsah dokumentu zůstává naprosto nezměněn.

Specifikace XML 1.0 (doporučení W3C, páté vydání) definuje přísnou gramatiku, kde každá otevírací značka musí mít odpovídající uzavírací značku nebo být samouzavírací, atributy musí být v uvozovkách a pět znaků (<, >, &, ", ') vyžaduje nahrazení entitami. Formátovač musí tato pravidla respektovat a zároveň vkládat pouze nevýznamné mezery, které nemění informační sadu dokumentu (infoset). Správné pochopení těchto pravidel zajišťuje, že formátování probíhá bezpečně a výsledek lze spolehlivě použít ve všech XML procesorech a parsovacích knihovnách.

Naformátované XML se snáze čte při revizi kódu, snáze porovnává ve správě verzí a snáze ladí, když služba vrátí neočekávaná data. Samotná operace formátování je bezeztrátová: logický obsah dokumentu zůstává identický, mění se pouze prezentace. Nástroje jako git diff a platformy pro revizi pull requestů zobrazují pouze upravené řádky — konzistentně odsazené XML zajišťuje, že tyto rozdíly odrážejí skutečné změny, nikoli šum z přeformátování. Týmy, které dodržují konzistentní styl formátování, tráví méně času pochopením struktury dokumentu a více času skutečnou prací na funkčnosti.

Before · xml
After · xml
<catalog><book id="bk101"><author>Gambardella, Matthew</author><title>XML Developer's Guide</title><genre>Computer</genre><price>44.95</price><publish_date>2000-10-01</publish_date></book><book id="bk102"><author>Ralls, Kim</author><title>Midnight Rain</title><genre>Fantasy</genre><price>5.95</price><publish_date>2000-12-16</publish_date></book></catalog>
<catalog>
  <book id="bk101">
    <author>Gambardella, Matthew</author>
    <title>XML Developer's Guide</title>
    <genre>Computer</genre>
    <price>44.95</price>
    <publish_date>2000-10-01</publish_date>
  </book>
  <book id="bk102">
    <author>Ralls, Kim</author>
    <title>Midnight Rain</title>
    <genre>Fantasy</genre>
    <price>5.95</price>
    <publish_date>2000-12-16</publish_date>
  </book>
</catalog>

Proč použít online XML formátovač?

Ruční formátování XML je náchylné k chybám a pomalé, zejména u dokumentů s hlubokým zanořením nebo smíšenými jmennými prostory. Formátovač v prohlížeči vám dá naformátovaný výsledek za méně než sekundu, bez ohledu na velikost souboru. Na rozdíl od desktopových nástrojů nevyžaduje žádnou instalaci, konfiguraci ani přihlášení — stačí otevřít stránku a začít pracovat.

Okamžité zkrášlení
Vložte nebo napište XML a ihned získejte odsazený výstup. Žádné čekání na instalaci CLI nástroje ani spuštění build procesu.
🔒
Zpracování zaměřené na soukromí
Veškerá analýza a formátování probíhá ve vašem prohlížeči pomocí DOMParser API. Vaše XML nikdy neopustí váš počítač a nikdy se neodesílá na žádný server.
🎨
Konfigurovatelné odsazení
Vyberte odsazení 2 mezerami, 4 mezerami nebo tabulátorem, aby odpovídalo standardům kódování vašeho projektu — bez nutnosti upravovat konfigurační soubory.
📋
Bez účtu nebo instalace
Otevřete stránku, vložte XML a zkopírujte výsledek. Žádné registrační formuláře, žádný desktopový software, žádná rozšíření prohlížeče.

Případy použití XML formátovače

Vývoj frontendu
Prohlédněte SVG značkování nebo XHTML fragmenty vrácené CMS. Naformátování surového výstupu vám umožní rychle najít konkrétní atributy a vnořené skupiny.
Backendové inženýrství
Ladění odpovědí SOAP, RSS feedů nebo XML-RPC payloadů od služeb třetích stran. Zkrášlený výstup vám umožní sledovat chybějící prvky nebo nesprávné jmenné prostory.
DevOps a CI/CD
Čtení souborů Maven pom.xml, build skriptů Ant nebo souborů projektu .csproj generovaných strojem bez odsazení. Naformátujte je před odevzdáním, aby diff zůstal přehledný.
QA a testování
Porovnávejte očekávané a skutečné XML payloady v integračních testech. Naformátování obou stran na stejný styl odsazení eliminuje falešně negativní výsledky způsobené rozdíly v mezerách.
Datové inženýrství
Prohlédněte XML exporty z databází, ETL pipeline nebo vládních portálů otevřených dat. Naformátované XML odhalí strukturu záznamu ještě před tím, než napíšete XSLT transformaci nebo XPath dotaz.
Výuka XML
Studenti procházející tutoriály W3C XML mohou vkládat cvičné soubory do formátovače a ověřit, zda je jejich zanořování a syntaxe atributů správná.

Předdefinované entity XML

XML rezervuje pět znaků pro svou syntaxi. Pokud se tyto znaky vyskytují jako doslovný textový obsah nebo hodnoty atributů, musí být nahrazeny předdefinovanými entitami. Správný formátovač tyto entity při zkrášlování zachovává.

ZnakRole v XMLEntita
<Start of tag&lt;
>End of tag&gt;
&Start of entity&amp;
"Attribute delimiter&quot;
'Attribute delimiter&apos;

Srovnání stylů odsazení XML

Neexistuje jediný standard pro odsazení XML. Volba závisí na konvencích vašeho týmu a nástrojích ve vašem pipeline. Zde jsou tři nejčastější styly.

2 mezery (doporučeno)
Nejčastější volba pro XML související s webem: SVG, XHTML, SOAP, Spring config. Udržuje hluboce zanořené dokumenty kompaktní. Ve většině online formátovačů a IDE je výchozím nastavením.
4 mezery
Preferováno v Java ekosystémech (Maven, Ant, Android manifesty), kde soubory zřídkakdy přesahují 3–4 úrovně zanoření. Odpovídá výchozímu odsazení kódu v Javě a C#.
Tabulátor
Umožňuje každému vývojáři nastavit si vlastní vizuální šířku ve svém editoru. Běžné v legacy projektech a některých nástrojích Microsoftu (.csproj, .nuspec). Vytváří menší soubory než mezery.

Ukázky kódu: formátování XML programově

Když potřebujete formátovat XML uvnitř skriptu nebo build procesu, každý hlavní programovací jazyk nabízí vestavěnou nebo standardní knihovní volbu. V Pythonu lze použít modul xml.dom.minidom nebo lxml, v Javě je k dispozici javax.xml.transform s IndentingTransformerHandler, v Node.js pak knihovny jako xmldom nebo fast-xml-parser. Níže jsou funkční příklady, které lze přímo zkopírovat.

JavaScript (DOM API)
const raw = '<root><item>hello</item></root>'
const parser = new DOMParser()
const doc = parser.parseFromString(raw, 'application/xml')
const serializer = new XMLSerializer()
const xml = serializer.serializeToString(doc)

// Indent with XSLT (browser-native approach)
const xslt = new DOMParser().parseFromString(`
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="node()|@*">
      <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>
    </xsl:template>
  </xsl:stylesheet>`, 'application/xml')

const proc = new XSLTProcessor()
proc.importStylesheet(xslt)
const formatted = proc.transformToDocument(doc)
console.log(new XMLSerializer().serializeToString(formatted))
// → <root>\n  <item>hello</item>\n</root>
Python
import xml.dom.minidom

raw = '<root><item>hello</item><item>world</item></root>'
dom = xml.dom.minidom.parseString(raw)
print(dom.toprettyxml(indent='  '))
# → <?xml version="1.0" ?>
# → <root>
# →   <item>hello</item>
# →   <item>world</item>
# → </root>

# With lxml (handles namespaces, XSD, large files)
from lxml import etree
tree = etree.fromstring(raw.encode())
print(etree.tostring(tree, pretty_print=True).decode())
Go
package main

import (
    "encoding/xml"
    "fmt"
    "strings"
)

func formatXML(raw string) (string, error) {
    decoder := xml.NewDecoder(strings.NewReader(raw))
    var out strings.Builder
    encoder := xml.NewEncoder(&out)
    encoder.Indent("", "  ")
    for {
        tok, err := decoder.Token()
        if err != nil {
            break
        }
        encoder.EncodeToken(tok)
    }
    encoder.Flush()
    return out.String(), nil
}
// formatXML("<a><b>1</b></a>") → "<a>\n  <b>1</b>\n</a>"
CLI (xmllint)
# Format XML file with xmllint (part of libxml2, pre-installed on macOS/Linux)
xmllint --format input.xml > formatted.xml

# Format from stdin
echo '<a><b>1</b></a>' | xmllint --format -
# → <?xml version="1.0"?>
# → <a>
# →   <b>1</b>
# → </a>

# Validate and format at the same time
xmllint --format --schema schema.xsd input.xml

Často kladené otázky

Mění formátování XML význam dokumentu?
Ne. Formátování XML pouze přidává nebo odebírá nevýznamné mezery mezi značkami. Informační sada XML (infoset) zůstává identická — názvy prvků, atributy, hodnoty a hierarchie zůstávají naprosto beze změny. Jedna výjimka: pokud vaše schéma používá xml:space="preserve" na určitých prvcích, formátovač by tyto prvky měl ponechat beze změny — a tento nástroj to respektuje.
Jaký je rozdíl mezi formátováním a validací XML?
Formátování přidává odsazení a zalomení řádků, aby byl XML čitelný. Validace kontroluje, zda dokument odpovídá schématu (XSD, DTD nebo RelaxNG). Dokument může být správně utvořený, ale neplatný vůči svému schématu. Tento formátovač použijte pro čitelnost a nástroj XML Validator pro shodu se schématem.
Mohu formátovat XML s jmennými prostory?
Ano. DOMParser prohlížeče zpracovává jmenné prostory XML nativně. Předpony jmenných prostorů, deklarace výchozích jmenných prostorů (xmlns) a kvalifikované názvy atributů jsou během formátování zachovány. Formátovač nepřidává, neodebírá ani nepřejmenovává žádné vazby jmenných prostorů.
Jak velký XML soubor mohu v prohlížeči naformátovat?
Formátování v prohlížeči funguje dobře pro dokumenty do přibližně 10 MB. Nad touto hranicí spotřebuje DOM strom značné množství paměti a UI může přestat reagovat. Pro velmi velké soubory použijte CLI nástroj jako xmllint --format, který zpracovává XML jako datový proud.
Proč mé naformátované XML obsahuje přidanou deklaraci XML?
Některé formátovače přidávají <?xml version="1.0"?> při serializaci DOM stromu. Tato deklarace je v XML 1.0 volitelná, pokud je kódování UTF-8. Pokud ji nechcete, odstraňte první řádek z výstupu. Deklarace neovlivňuje analýzu žádným standardním XML procesorem.
Je formátování XML totéž co minifikace XML?
Jsou to opačné operace. Formátování přidává mezery pro zlepšení čitelnosti. Minifikace odstraňuje veškeré nepodstatné mezery za účelem zmenšení velikosti souboru. Obě operace jsou bezeztrátové vzhledem k informační sadě XML. Pokud potřebujete XML minifikovat, použijte nástroj XML Minifier.
Jaký je rozdíl mezi formátováním XML a HTML?
XML je striktní: každá značka musí být uzavřena, hodnoty atributů musí být v uvozovkách a dokument musí mít přesně jeden kořenový prvek. HTML (konkrétně HTML5) je tolerantní: volitelné uzavírací značky, atributy bez uvozovek a void prvky jako &lt;br&gt; jsou platné. XML formátovač neplatné XML odmítne, zatímco HTML formátovač toleruje syntaxi, kterou by XML nepovolilo.