Empty tags en XSLT
13-09-2006 2006m 12:18 000000000000r door WielandAls je XML wilt omzetten naar (X)HTML met behulp van XSLT, kom je in de problemen als de parser je lege elementen wat al te enthousiast naar valide XML vertaalt. Gelinkte stylesheets en scripts in de headers van je output werken dan namelijk niet meer in Internet Explorer. De parser maakt van <script type="text/javascript" src="foo.js"></script> namelijk <script type="text/javascript" src="foo.js"/>, en dat snapt IE niet. De simpelste workaround - hoewel een beetje een hack - is om een (blanco) comment in te voegen, zodat het element niet leeg is:
<xsl:template match="header">
(...)
<script type="text/javascript" src="foo.js">
<xsl:comment></xsl:comment>
</script>
</xsl:template>
Output:
<script type="text/javascript" src="foo.js"><!----></script>
(Aan deze steen heb ik me de afgelopen jaren méér dan eens gestoten, dus ik post het maar even hier, zodat ik het nooit meer vergeet (en voor Google). Het zijn de laatste dagen bij mijn huidige werkgever (waarover later meer), en ik heb het erg druk met de afronding van mijn bezigheden. Dan kun je dit soort stomme bugs er eventjes niet bij hebben.)
Ma.gnolia
del.icio.us
digg
Technorati
NUjij.nl

13-09-2006 om 22:34 000000000000r
Dank.