Další chyba v podpoře XML v Internet Exploreru
Máte XHTML stránky, které generujete jako XML dokument třeba pomocí XSLT? A už se vám stalo, že tyto stránky byly v Internet Exploreru po vygenerování úplně rozhozené, přesto, že šablona od grafika se zobrazovala správně?
S podobným problémem jsem se nedávno potýkal. Na jednom projektu se vygenerované stránky v Internet Exploreru zobrazovaly s naprosto rozhozeným layoutem. Zatímco šablona byla zobrazena správně:
Vygenerovaná stránka byla zobrazena špatně:
Když už mě nenapadalo, co by mohlo Internet Exploreru vadit, začal jsem vygenerovaný dokument postupně upravovat do podoby původní šablony (včetně odřádkování a mezer), abych zjistil, která úprava povede ke změně renderování v Internet Exploreru. Tím jsem odhalil jeden drobný rozdíl mezi těmito dokumenty. Zatímco v šabloně byl prázdný tag div zapsán v nezkráceném tvaru <div></div>, vygenerovaný dokument obsahoval zkrácený zápis prázdného tagu <div /> (ještě dodám, že stejná chyba se projevovala i při zápisu tagu bez mezery <div/>). Ačkoli jsou si tyto dva (tři) zápisy v XML rovnocenné, Internet Explorer (a to i ve verzi 8.0.6001.18241IC – beta 2) si, jak už to u něj bývá, „myslí“ něco jiného — zkrácený zápis prázdného tagu div považuje za otvírací tag, který není uzavřený a tím rozhodí celý layout stránky.
Pomoc je naštěstí jednoduchá — stačí všechny výskyty zkrácených zápisů po vygenerování stránky nahradit nezkrácenými alternativami.

