Hallo allerseits,
um das Google-Chrome-Thema nicht unnoetig ins Off-Topic zu treiben stelle ich einfach mal hier die Frage. Ich hab aus Spass an der Freude mal damit rumexperimentiert, eine Website als
XML auszuliefern und mit Hilfe von XSL-Stylesheets in vernuenftiges
HTML umzuwandeln. Das Umwandeln klappt an sich ganz gut, aber bei der Anzeige hapert es. Der Code der Beispielseite ist simpel:
XML-Code:
<?
xml version="1.0" ?>
<?
xml-stylesheet type="text/xsl" href="forum.xsl" ?>
<forum id="1" name="Test-Forum">
<header>
<usernav>
<item
url="search.php">Suchen</item>
<item
url="login.php">Login</item>
</usernav>
</header>
<topics>
<topic id="1">
<title>Test-Thema</title>
<author id="1">
<name>alcaeus</name>
</author>
<replies>14</replies>
</topic>
<topic id="2">
<title>Foo</title>
<author id="2">
<name>hades</name>
</author>
<replies>0</replies>
</topic>
</topics>
</forum>
Den Code bzw. das Ergebnis koennt ihr
hier einsehn. Das XSL-Stylesheet ist etwas laenger, aber immer noch simpel:
XML-Code:
<?
xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes" encoding="ISO-8859-1" omit-
xml-declaration="no" doctype-public="" />
<xsl:template match="/forum">
<
html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="de" dir="ltr">
<head>
<title>Forum anzeigen: <xsl:value-of select="@name" /></title>
</head>
<body>
<div id="header">
[
url="/"]<h1>Infler.de</h1>[/
url]
<xsl:apply-templates select="header" />
</div>
<a><xsl:attribute name="href">forum.xml?f=<xsl:value-of select="@id" /></xsl:attribute><h2><xsl:value-of select="@name" /></h2></a>
<xsl:apply-templates select="topics" />
</body>
</
html>
</xsl:template>
<xsl:template name="topics" match="topics">
<ul>
<xsl:for-each select="topic">
[*]<xsl:value-of select="@id" />: <xsl:value-of select="title" /> von <xsl:value-of select="author/name" /> (<xsl:value-of select="replies" /> Antworten)
</xsl:for-each>[/list]</xsl:template>
<xsl:template name="header" match="header">
<xsl:for-each select="usernav">
<ul>
<xsl:for-each select="item">
[*]<a><xsl:attribute name="href"><xsl:value-of select="@
url" /></xsl:attribute><xsl:value-of select="." /></a>
</xsl:for-each>
[/list] </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
(Online
hier einsehbar)
Das Ergebnis sieht im IE6 wie erwartet kacke aus (ich hab hier keinen Screenshot, aber die Webdesigner wissen sicherlich was ich meine), was mich aber nicht weiter stoert. IE7 zeigt die Seite so an wie ich es erwarte. Firefox 2 und 3, Safari, Opera und auch Google Chrome zeigen aber alle dasselbe Bild. Einen Vergleich zwischen IE7 und Firefox 2 habe ich
hier online gestellt. Alle Browser ausser dem IE7 zeigen die Seite so an, wie Firefox 2, die Liste wird nicht als Solche dargestellt, sondern die einzelnen Listenpunkte hintereinandergestellt.
Da ich es etwas eigenartig finde, dass im IE7 etwas korrekt angezeigt wird und in anderen Browsern nicht, obwohl ich mich meines Wissens nach an Standards gehalten hab, frage ich sicherheitshalber hier nach. Kann jemand im
XML (glaube ich kaum) oder im XSL-Stylesheet (halte ich eher fuer wahrscheinlich) einen Fehler finden, der das Rendering in Firefox und Konsorten durcheinanderbringt? Kann es sein dass ich die Style-Informationen, die der Browser Standardmaessig laedt (also auch das Standard-Aussehen von Listen) alle explizit definieren muss?
Ich hoffe jemand kann mir weiterhelfen, kann ja nicht sein dass der IE7 als einziger Browser die Seite korrekt darstellt
Greetz
alcaeus