Pro programátory

XML konfiguráky - jak je porovnat bez bolesti hlavy

31. prosince 2025
7 min čtení
XMLkonfiguraceJava.NET

XML mě trochu štve, ale musím uznat že ho pořád potkávám všude. Hlavně v Java a .NET projektech, kde se drží jako klíště. A porovnávat XML soubory je... zajímavé.

S jakými XML konfiguráky se potkávám

Nejčastěji řeším:

  • Spring applicationContext.xml - ty beany a dependency injection
  • Maven pom.xml - dependencies a build konfigurace
  • .NET app.config/web.config - nastavení aplikace
  • Android AndroidManifest.xml - permissions a komponenty
  • Log4j/Logback XML - logování

Všechny mají společné to, že změna na špatném místě = hodiny debugování.

Proč je XML diff tak otravný

Normální textový diff ti ukáže každou blbost:

  • Whitespace - přidáš mezeru a diff řve
  • Pořadí elementů - někdy záleží, někdy ne (záleží na schematu)
  • Namespace prefixy - můžeš mít různé prefixy pro stejný namespace
  • Komentáře - občas chceš ignorovat, občas ne
  • Atributy vs child elementy - sémanticky to samé, syntakticky jiné

Prostě chaos.

Jak to řeším já

Pro běžné rychlé porovnání:

  1. Formátuji oba soubory stejně (VS Code má to zkrášlení)
  2. Hodím do PorovnejText
  3. Koukám na rozdíly

Pro vážnější věci:

  • XMLUnit (Java/.NET) - rozumí sémantice XML
  • IDE pluginy - IntelliJ má slušný XML diff
  • diff-xml-js - pro Node.js projekty

Sémantický vs textový diff

Textový diff - ukáže ti úplně všechno, včetně bílých znaků a pořadí. Hodí se když debuguješ formátovací problémy.

Sémantický diff - parsuje XML, porovnává DOM tree, ignoruje nesmysly. Tohle chceš pro code review.

Pro config review používám sémantický. Pro "proč sakra ten formatter změnil 500 řádků" textový.

Tipy z praxe

Version control:

  • Normalizuj formátování - consistent indentace
  • Seřaď elementy kde na pořadí nezáleží (Maven dependencies abecedně)
  • Rozděl velké configy do menších souborů
  • Komentuj PROČ něco měníš, ne co

Před deployem:

  • Validuj proti schematu
  • Testuj v runtime, ne jen syntaxi
  • Kritické změny nejdřív na staging

V CI/CD

Máme pipeline, která automaticky porovnává config mezi prostředími. Když někdo omylem změní produkční config, hned to vidíme. Ušetřilo nám to už několik průserů.

Jo a logujeme config diff pro audit. Jednou se hodilo když se řešilo "kdo to změnil a kdy".


XML diff vyžaduje pochopení jak formátu, tak business logiky. Ale s trochou disciplíny to jde.

Potřebuješ rychle porovnat dva XML soubory? Hoď je do XML Diff nástroje a máš to za minutu.

Vyzkoušejte PorovnejText.cz zdarma

Nejrychlejší český nástroj pro porovnání textů. Vše probíhá ve vašem prohlížeči, žádná registrace není potřeba.

Porovnat texty nyní →