Zwei HTML-Dateien durch Transformation erzeugen
Bürgle
- zu diesem forum
0 Robert0 Rainer S.0 Bürgle- xml
0 Thomas J.S.- xml
0 Danke!
Bürgle- xml
Hi!
Ich möchte aus einer XML-Datei per XSL zwei (unterschiedliche)HTML-Dateien generieren, doch finde ich weder in der Websuche noch hier was brauchbares zu dem Thema.
Ich verwende für die Transformation Saxon.
Hat jemand eine Idee oder einen Tipp, wie das machbar ist?
Grüße, Bürgle
Halli,
Ich möchte aus einer XML-Datei per XSL zwei (unterschiedliche)HTML-Dateien generieren,
Ich verwende für die Transformation Saxon.
Hat jemand eine Idee oder einen Tipp, wie das machbar ist?
In einem Durchgang: soweit ich weiß nicht
In zwei Durchgängen: ja, mit Parametern
cu,
Robert
Hallo,
Ich möchte aus einer XML-Datei per XSL zwei (unterschiedliche)HTML-Dateien generieren, doch finde ich weder in der Websuche noch hier was brauchbares zu dem Thema.
das geht, allerdings ist es nicht durch den XSLT-Standard abgedeckt, sondern (XSLT-)Prozessorabhängig.
Ich verwende für die Transformation Saxon.
<abgetippt>
Saxon kann mit <saxon:output href="Dateiname"> eine (oder mehrere) Ausgabedatei(en) schreiben.
(xmlns:saxon="http://icl.com/saxon")
</abgetippt>
Für die Ausgabe mehrerer Dateien wirst Du vermutlich Modi verwenden müssen.
Schönen Gruß
Rainer
Hi Rainer,
ich bekomm das leider nicht hin :(
Saxon meldet zwar keine Fehler mehr, doch es wird einfach nur ein einziges File generiert, und zwar dann, wenn ich beim Aufruf per Parameter ein Dateiname mitgebe (-o xxx.htm....).
Wie/wo muss ich das:xmlns:saxon="http://icl.com/saxon"
einbinden? In der XML-Deklaration oben?
Für die Ausgabe mehrerer Dateien wirst Du vermutlich Modi verwenden müssen.
Was verstehst Du unter "Modi", vermutlich ein Modus, aber was, wo?
Grüße, Bürgle
Hi,
Wie/wo muss ich das:xmlns:saxon="http://icl.com/saxon"
einbinden? In der XML-Deklaration oben?
Im Tag <xsl...> hinter xmlns:xsl="..."
Was verstehst Du unter "Modi", vermutlich ein Modus, aber was, wo?
Mit Modi kannst Du, wenn Du in einem <xsl:apply-templates select="..."> noch ein mode="abcdef" einbaust,
Templates verwenden, die auch mode="abcdef" in ihrem xsl:template-Tag drinstehen haben, die gleichen Elemente mehrmals für verschiedene Aktionen (z.B. Inhaltsverzeichnis und Normaltext oder auch verschiedene Ausgabedokumente) transformieren.
Ich hoffe, das war einigermaßen verständlich. Wenn nicht - Das Buch "XSLT" aus dem O'Reilly-Verlag ist wirklich gut...
Schönen Gruß
Rainer
Sorry - falsches Thema - XML natürlich :)
Grüße, Bürgle
Hallo,
Ich möchte aus einer XML-Datei per XSL zwei (unterschiedliche)HTML-Dateien generieren, doch finde ich weder in der Websuche noch hier was brauchbares zu dem Thema.
Ich verwende für die Transformation Saxon.
Hat jemand eine Idee oder einen Tipp, wie das machbar ist?
Möchtest du das statisch, oder dynamisch machen?
Dynamisch wäre für mich z.B. wenn du ein Framest hast und im einen Frame ein Inhaltsverzeichnis aus der XML-Datei extrahieren möchtest, während im anderen Frame der eigentliche Inhalt angezeigt werden sollte.
Ansonsten kannst du Einfach ein Parameter verwenden und per mode="" Attribut zwei Verschiedene Templatest für deine Seite verwenden. Diesen Parameter kannst du dann Saxon mitteilen, und ihn selbst in der XSL-Sheet abfragen.
<xsl:param name="meinParam" />
<xsl:template match="/">
<html>
<head>
<title>Untitled</title>
</head>
<body>
xsl:choose
<xsl:when test="$meinParam='Test'">
<xsl:apply-templates mode="Test"/>
</xsl:when>
xsl:otherwise
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</body>
</html>
--------
saxon -a dein.xml meinParam=Test >dein.html
Grüße
Thomas
Hi!
Vielen Dank für all die Interessanten Tipps, ich habe letztenendes Rainers ersten Vorschlag verwendet, allerdings musste ich in Header noch ' extension-element-prefixes="saxon" ' einfügen, ich bin fast verzweifelt bis ich gefunden habe, dass das noch fehlt, doch nun geht es :)
Danke nochmal!
Grüße, Bürgle