ritschmanhard: xml postprocessing, 2 stufige transformation

Beitrag lesen

Hallo!
Ich hab ein übles Problem, welches ich für den IE schon mal gelöst habe, nun aber für netscape lösen muss:

1. Ich habe eine XML Datei (start.xml).
start.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<document>
<item>
   <key>7</key>
   <key>33</key>
   <data>bla</data>
</item>
<item>
   <key>8</key>
   <key>35</key>
   <data>bla</data>
</item>
</document>

2. Ich erzeuge mittels xsl (siehe xsl:output) ein derivat, welches wieder eine xml Datei darstellt.
test.xsl

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml" indent="yes" encoding="ISO-8859-1" omit-xml-declaration="no" version="1.0"<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:template match="/">
  <xsl:processing-instruction name="xml-stylesheet">
    xsl:texthref="postProcessing.xsl" type="text/xsl"</xsl:text>
  </xsl:processing-instruction>
  <document>
    <xsl:apply-templates />
  </document>
</xsl:template>

<xsl:template match="item">
 <xsl:element name="item">
     <xsl:for-each select="./.">
        <xsl:copy-of select="."/>
     </xsl:for-each>
     <xsl:element name="superkey">
        <xsl:value-of select="./key[0]"/>
        <xsl:value-of select="./key[1]"/>
     </xsl:element>
 </xsl:element>
</xsl:template>

3. Es entsteht eine xml Datei (sei output.xml) folgender Art (diese wird allerdings in Browser nicht wie gewohnt als xml Datei mit klappbaren Knoten angezeigt, sondern der Inhalt der Tags wird nacheinander einfach ausgegeben, die Ausgabe wurde mit xsltproc unter SUSE erzeugt):

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="postProcessing.xsl" ?>
<document>
<item>
   <key>7</key>
   <key>33</key>
   <data>bla</data>
   <superkey>733</superkey>
</item>
<item>
   <key>8</key>
   <key>35</key>
   <data>bla</data>
   <superkey>835</superkey>
</item>
</document>

4. Die von mir erwartete xsl Transformation von output.xml mittels postProcessing.xsl findet nicht mehr statt.

Was mache ich bei der zweistufigen Transformation falsch?
(Unter IE stand das msxmldom object zur Verfügung, mittels dessen eine Transformation möglich war, dieses fehlt bei netscape und firefox).

Ich bitte um Eure Hilfe und danke im Voraus,

Euer Richard

P.S.: Bitte keine Tips zur Erzeugung des test.xml oder "warum brauchst du denn den superkey?". Ich habe das Beispiel sehr vereinfacht und benötige trotzdem eine Lösung für dieses Basisproblem.