Porovnání XML souborů online
Porovnání XML souborů zdarma
Konfigurák se rozbil a nevíte proč? Sem s oběma verzemi - najdu i tu nejmenší změnu v atributech.
Tip: Použijte Ctrl+Enter pro rychlé porovnání
Praktické využití
| Scénář | Příklady souborů |
|---|---|
| DevOps & konfigurace | web.config, pom.xml, build.xml, persistence.xml |
| Mobilní vývoj | AndroidManifest.xml, Info.plist, *.xib soubory |
| Enterprise integrace | SOAP odpovědi, WSDL definice, XSD schémata |
| SEO & web | sitemap.xml, RSS/Atom feedy, XHTML stránky |
| Grafika | SVG soubory, Office dokumenty (interní XML) |
XML potřebuje speciální přístup
Obyčejný textový diff nezná strukturu. Tohle ano.
Hierarchie elementů
Vidíte strukturu jako strom. Rozbalíte rodiče, vidíte děti. Změna vnořeného elementu je jasně označená v kontextu celé cesty.
Atributy pod kontrolou
Změna value="true" navalue="false" je hned vidět. Neztratí se mezi ostatními změnami.
Validace při vložení
Jestli máte neuzavřený tag nebo špatný znak, dozvíte se to hned. S číslem řádku a popisem problému.
Jak na to?
Připravte si dva XML soubory
Konfigurák, SOAP odpověď, RSS feed, sitemap - cokoliv v XML. Může to být i HTML nebo XHTML.
Vložte do editorů
Vlevo původní, vpravo nová verze. Můžete přetáhnout soubory nebo Ctrl+V.
Prohlédněte si rozdíly ve stromu
Elementy jsou pěkně pod sebou, dají se rozbalovat. Vidíte co se změnilo v atributech i hodnotách.
Ukázka: Změna v konfiguraci
Typický případ - něco nefunguje a potřebuju zjistit co se změnilo v konfigu. Třeba tenhle web.config:
Původní verze
<configuration>
<appSettings>
<add key="Debug" value="true"/>
<add key="Timeout" value="30"/>
</appSettings>
</configuration>Nová verze
<configuration>
<appSettings>
<add key="Debug" value="false"/>
<add key="Timeout" value="60"/>
<add key="CacheEnabled" value="true"/>
</appSettings>
</configuration>Co hned vidím:
- Změna: Debug se přepnul z true na false (to je asi ten problém!)
- Změna: Timeout se zvýšil z 30 na 60 sekund
- Novinka: Přibyl CacheEnabled parametr
Technické dotazy
Umíš ignorovat namespace prefixy?
Ano, v nastavení můžete zapnout ignorování jmenných prostorů. Užitečné když porovnáváte SOAP odpovědi z různých prostředí kde se prefixy liší.
Co když mám neformátovaný XML?
Minifikovaný XML na jednom řádku? Funguje. Interně ho zparsuju a porovnám strukturálně. Na zobrazení ho pak můžu naformátovat pro přehlednost.
Jak velký pom.xml nebo web.config to zvládne?
Běžné konfigurační soubory bez problémů. Mám testované projekty se stovkami dependencies. Opravdu velké (megabajty) mohou chvíli trvat - záleží na vašem prohlížeči.
Můžu sem dát produkční konfiguraci?
Celé zpracování běží lokálně v JavaScriptu. XML nikam neodesílám, neukládám, nemám přístup k vašim datům. I citlivé konfigurace jsou bezpečné.
Víc o XML porovnávání
Na blogu mám článek o porovnávání XML konfiguráků - jak hledat změny, co dělat s jmennými prostory, a pár tipů z praxe.
Přečíst článek o XML konfiguracích→Další nástroje pro práci s XML
Příběh z produkce
Pátek odpoledne, produkce padá. Web.config se někde změnil a nikdo neví kde. Git historie? 50 commitů. Projít ručně? Hodiny práce.
Vzal jsem funkční zálohu, aktuální verzi a hodil je sem. Za 10 sekund jsem věděl: někdo změnil connection timeout z 30 na 3 sekundy. Překlep. Oprava trvala minutu.
Od té doby tohle používám na všechny XML konfiguráky - pom.xml v Mavenu, build.xml v Antu, AndroidManifest.xml. Strukturální porovnání je rychlejší než pročítání textového diffu.
Detailnější návody píšu na blogu, třeba jak efektivně debugovat konfigurační problémy.