Bei selfhtml findet man folgendes zum Attribut omit-xml-declaration (für den xslt Tag "output"):
Ich habe jetzt schon beides probiert. Ob dort drin steht "yes" oder eben "no" spielt keine Rolle, bei mir schreibt der keine XML-Deklaration an den Anfang des Dokument (nat. auch an keine andere Stelle).
Da ich einen RSS Feed erzeugen will, benötige ich aber diese Deklaration am Anfang.
Ich habe mal mein Beispiel etwas verkürzt:
Die XML Datei:
Die XSLT Datei:
Das generierte Ergebnis sieht nun so aus:
Wir aber wegen der fehlenden XML Deklaration nicht als RSS Feed erkannt bzw. angezeigt.
Nun meine Frage. Was mach ich falsch? Wie bekomme ich den Browser dazu, die Deklaration an den Anfang zu schreiben?
Ich habe die 2 Dateien mal mit angehängt.
Danke im voraus,
Markus
(optional) bestimmt bei method="xml", ob im Ergebnisbaum eine Seite XML-Deklaration (<?xml ...?>) ausgegeben werden soll oder nicht. Mögliche Werte sind yes für nein (omit = weglassen) oder no für ja (nicht weglassen).
Da ich einen RSS Feed erzeugen will, benötige ich aber diese Deklaration am Anfang.
Ich habe mal mein Beispiel etwas verkürzt:
Die XML Datei:
HTML Code:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="rss.xsl"?> <document> <articles paging="5"> <article> <key>xml-um-xml-erweitern</key> <added rss="Wed, 27 Feb 2008 22:18:20 +0100">1204147100</added> <headline>Ueberschrift</headline> <text>Inhalt</text> </article> </articles> </document>
HTML Code:
<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:atom="http://www.w3.org/2005/Atom" > <xsl:output method="xml" version="1.0" indent="yes" encoding="UTF-8" omit-xml-declaration="no" /> <xsl:template match="document"> <rss version="2.0"> <channel> <title>Titel</title> <link>http://example.com</link> <description>Bla...</description> <language>de-de</language> <copyright>...</copyright> <managingEditor>...</managingEditor> <webMaster>...</webMaster> <xsl:apply-templates select="articles"/> </channel> </rss> </xsl:template> <xsl:template match="articles"> <xsl:apply-templates select="article" /> </xsl:template> <xsl:template match="article"> <item> <guid> <xsl:value-of select="key" /> </guid> <xsl:apply-templates select="added" /> <xsl:apply-templates select="headline" /> <description><xsl:apply-templates select="text" /></description> </item> </xsl:template> <xsl:template match="added"> <pubDate><xsl:value-of select="@rss" /></pubDate> </xsl:template> <xsl:template match="headline"> <title><xsl:value-of select="." /></title> </xsl:template> <xsl:template match="text"> <xsl:apply-templates /> </xsl:template> </xsl:stylesheet>
HTML Code:
<rss version="2.0"> <channel> <title>Titel</title> <link>http://example.com</link> <description>Bla...</description> <language>de-de</language> <copyright>...</copyright> <managingEditor>...</managingEditor> <webMaster>...</webMaster> <item> <guid>xml-um-xml-erweitern</guid> <pubDate>Wed, 27 Feb 2008 22:18:20 +0100</pubDate> <title>Ueberschrift</title> <description>Inhalt</description> </item> </channel> </rss>
Nun meine Frage. Was mach ich falsch? Wie bekomme ich den Browser dazu, die Deklaration an den Anfang zu schreiben?
Ich habe die 2 Dateien mal mit angehängt.
Danke im voraus,
Markus
Comment