2011-01-06 4 views
1

Ich versuche einen RSS-Doctype zu einem XML-Dokument hinzuzufügen, das mit xslt gerendert wurde. Wie ändere ich das Wurzelelement?Changegin Doctype Root-Element zu RSS von HTML mit xslt?

Dies ist, was es sieht derzeit wie:

<!DOCTYPE html PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "about:legacy-compat"> 

Ich mag würde:

<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "about:legacy-compat"> 

Hier ist meine outputnode:

<xsl:output 
method="xml" 
version="1.0" 
encoding="UTF-8" 
doctype-public="-//Netscape Communications//DTD RSS 0.91//EN" 
indent="yes" 
/> 
+0

Sie wollen Sie auch die '

+0

Gute Frage, +1. Siehe meine Antwort für eine vollständige Lösung. –

Antwort

0

Hier ist ein einfaches Beispiel:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" indent="yes" 
doctype-system="http://www.silmaril.ie/software/rss2.dtd" 
doctype-public="-//Netscape Communications//DTD RSS 0.91//EN"/> 
<xsl:template match="/"> 
    <rss> 
    <channel/> 
    </rss> 
</xsl:template> 
</xsl:stylesheet> 

, wenn ein XML-Dokument (nicht verwendet) wird mit dieser Transformation verarbeitet werden, das wollte, ist korrektes Ergebnis hergestellt:

<!DOCTYPE rss 
    PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://www.silmaril.ie/software/rss2.dtd"> 
<rss> 
    <channel/> 
</rss>