Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

XML/XSL: Seite wird nicht korrekt angezeigt

  Alt 9. Sep 2008, 22:07
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat