XSLT / result-document / mehrere HTML-Dateien erzeugen
verenice
- xsl
0 Thomas J.S.0 verenice
Hallo,
ich habe mit result-document schon Mal mehrere Dateien erzeugt. Nun funktioniert es aber nicht und ich weiß nicht, woran es liegt.:-/
Es wird nur ein Dokument mit allen Kapiteln erzeugt. Dabei wollte ich für jedes Kapitel eine HTML-Datei erzeugen.
Vielleicht könnt Ihr mir ja einen Hinweis geben voran es liegen könnte?!
XSLT-File:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:preserve-space elements="test"/>
<xsl:template match="/">
<xsl:result-document href="Kapitel{position()}.html">
<html>
<head>
<title>Handbuch</title>
</head>
<body>
<h1>
<xsl:value-of select="//Handbuchtitel"/>
</h1>
<pre>
<xsl:apply-templates select="Handbuch/Handbuchstruktur/KapitelRef"/>
</pre>
</body>
</html>
</xsl:result-document>
</xsl:template>
<xsl:template match="KapitelRef">
<hr/>
<xsl:variable name="KapitelRefID">
<xsl:value-of select="@id"/>
</xsl:variable>
<h2>
<xsl:value-of select="//Kapitel[@id=$KapitelRefID]"/>
</h2>
<br/>
<xsl:for-each select="TextRef | BildRef">
<br/>
xsl:choose
<xsl:when test="name()='TextRef'">
<xsl:variable name="TextRefID">
<xsl:value-of select="@id"/>
</xsl:variable>
<xsl:value-of select="//Text/Textbaustein[@id=$TextRefID]"/>
<br/>
<br/>
</xsl:when>
<xsl:when test="name()='BildRef'">
<xsl:variable name="BildRefID">
<xsl:value-of select="@id"/>
</xsl:variable>
<img src="Bilder/{//Bild[@id=$BildRefID]/@src}" alt="{//Bild[@id=$BildRefID]/@src}" width="{//Bild[@id=$BildRefID]/@width}" heigth="{//Bild[@id=$BildRefID]/@height}"/>
<br/>
<br/>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Vielen Dank schon mal im voraus.
Viele Grüße
verenice
Hallo,
ich habe mit result-document schon Mal mehrere Dateien erzeugt. Nun funktioniert es aber nicht und ich weiß nicht, woran es liegt.:-/
Schaue bitte deine damailige Beiträge und die Antworten auf sie im Archiv an.
Es wird nur ein Dokument mit allen Kapiteln erzeugt. Dabei wollte ich für jedes Kapitel eine HTML-Datei erzeugen.
Du erzeugst auch nur _ein_ Dokument:
<xsl:template match="/">
<xsl:result-document href="Kapitel{position()}.html">
Erzeugt genau ein Dokument. --> Schaue bitte deine damailige Beiträge und die Antworten auf sie im Archiv an.
Grüße
Thomas
Hallo Thomas,
habe ich gemacht. Hat jetzt auch funktioniert.
Trotzdem vielen Dank.
Viele Grüße
verenice