Habe folgendes Problem, wäre sehr dankbar, wenn jemand weiter helfen könnte:
Ich habe ein XSL-Stylesheet und abhängig von einem Abschnitt in der XML-Datei
will ich ein anderes Stylesheet NUR für dieses Abschnitt laden, so, dass, dieses
Stylesheet in den ersten Stylesheet quasi angebettet wird.
habe verschiedene Möglichkeiten mit<xsl:import href=""> und <xsl:include
href=""> angeguckt, bin aber nicht viel weiter gekommen.
Hier ist ein Beispiel, der mein Problem spezifiziert, falls es nicht so klar ist, was
gemeint wird:
wie kann ich all das, was im Abschnitt <XML> mit einer anderen XSLT-Datei
darstellen, wobei das Gesamtaussehen nicht verändert wird?
**************************************
XML-Datei:
<PRE>
<?xml version="1.0" encoding="UTF-8"?>
<FRAGMENTS>
<FRAGMENT>
<TEXT>Hier ist der einfache Text</TEXT>
</FRAGMENT>
<FRAGMENT>
<XML>
<E-Mail-Daten>
<E-Mail-Eintrag>
<Person>Webmaster</Person>
<E-Mail>[email protected]</E-Mail>
</E-Mail-Eintrag>
<E-Mail-Eintrag>
<Person>Informationen</Person>
<E-Mail>[email protected]</E-Mail>
</E-Mail-Eintrag>
</E-Mail-Daten>
</XML>
</FRAGMENT>
</FRAGMENTS>
</PRE>
************************************************** *****
XSL dazu:
*********************************
<PRE>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:template match="/">
<html>
<head />
<body>
<xsl:for-each select="FRAGMENTS">
<xsl:for-each select="FRAGMENT">
<xsl:for-each select="TEXT">
<xsl:apply-templates />
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
<br />
<xsl:for-each select="FRAGMENTS">
<xsl:for-each select="FRAGMENT">
<xsl:for-each select="XML">
<xsl:apply-templates />
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
</PRE>
***********************************************
ein anderes XSL:, der eigentlich für den abschnitt <XML> gedacht ist:
********
<PRE>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:template match="/">
<html>
<head />
<body>
<xsl:for-each select="E-Mail-Daten">
<table border="1">
<thead>
<tr>
<td>Person</td>
<td>E-Mail</td>
</tr>
</thead>
<tbody>
<xsl:for-each select="E-Mail-Eintrag">
<tr>
<td>
<xsl:for-each select="Person">
<xsl:apply-templates />
</xsl:for-each>
</td>
<td>
<xsl:for-each select="E-Mail">
<xsl:apply-templates />
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
</PRE>
Vielen Dank im Voraus
Ich habe ein XSL-Stylesheet und abhängig von einem Abschnitt in der XML-Datei
will ich ein anderes Stylesheet NUR für dieses Abschnitt laden, so, dass, dieses
Stylesheet in den ersten Stylesheet quasi angebettet wird.
habe verschiedene Möglichkeiten mit<xsl:import href=""> und <xsl:include
href=""> angeguckt, bin aber nicht viel weiter gekommen.
Hier ist ein Beispiel, der mein Problem spezifiziert, falls es nicht so klar ist, was
gemeint wird:
wie kann ich all das, was im Abschnitt <XML> mit einer anderen XSLT-Datei
darstellen, wobei das Gesamtaussehen nicht verändert wird?
**************************************
XML-Datei:
<PRE>
<?xml version="1.0" encoding="UTF-8"?>
<FRAGMENTS>
<FRAGMENT>
<TEXT>Hier ist der einfache Text</TEXT>
</FRAGMENT>
<FRAGMENT>
<XML>
<E-Mail-Daten>
<E-Mail-Eintrag>
<Person>Webmaster</Person>
<E-Mail>[email protected]</E-Mail>
</E-Mail-Eintrag>
<E-Mail-Eintrag>
<Person>Informationen</Person>
<E-Mail>[email protected]</E-Mail>
</E-Mail-Eintrag>
</E-Mail-Daten>
</XML>
</FRAGMENT>
</FRAGMENTS>
</PRE>
************************************************** *****
XSL dazu:
*********************************
<PRE>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:template match="/">
<html>
<head />
<body>
<xsl:for-each select="FRAGMENTS">
<xsl:for-each select="FRAGMENT">
<xsl:for-each select="TEXT">
<xsl:apply-templates />
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
<br />
<xsl:for-each select="FRAGMENTS">
<xsl:for-each select="FRAGMENT">
<xsl:for-each select="XML">
<xsl:apply-templates />
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
</PRE>
***********************************************
ein anderes XSL:, der eigentlich für den abschnitt <XML> gedacht ist:
********
<PRE>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:template match="/">
<html>
<head />
<body>
<xsl:for-each select="E-Mail-Daten">
<table border="1">
<thead>
<tr>
<td>Person</td>
<td>E-Mail</td>
</tr>
</thead>
<tbody>
<xsl:for-each select="E-Mail-Eintrag">
<tr>
<td>
<xsl:for-each select="Person">
<xsl:apply-templates />
</xsl:for-each>
</td>
<td>
<xsl:for-each select="E-Mail">
<xsl:apply-templates />
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
</PRE>
Vielen Dank im Voraus
Comment