Hallo zusammen,
ich bin nicht so dicke mit XSL und bräuchte mal Hilfe.
Ich habe eine XML-Datei die sieht ungefähr so aus.
<library language="en">
<chapter name="Name der Hilfedatei">
<section name="Name von Sektion1">
<topic name="Topic 1">
<desc>Längere Beschreibung</desc>
<topic name="Topic 2">
<topic name="Topic 3">
<topic name="Topic 4">
<topic name="Topic 5">
<topic name="Topic 6">
<section name="Name von Sektion2">
<section name="Name von Sektion3">
<func name="Name von Funktion">
<desc>Längere Beschreibung</desc>
<section name="Name von Sektion4">
<section name="Name von Sektion5">
<section name="Name von Sektion6">
<topic name="Topic 1">
<topic name="Topic 1">
<topic name="Topic 1">
<section name="Name von Untersektion">
<func name="Name von Funktion">
<func name="Name von Funktion">
<desc>Längere Beschreibung</desc>
<table>Weiterer Inhalt</table>
<section name="Name von Sektion7">
</chapter>
</library>
Das meiste habe ich schon soweit hinbekommen, wie ich es haben will aber ich finde keine Möglichkeit zum Ausblenden von bestimmten Knoten. In diesem Fall "<table>". Es sind in der Quell-Datei noch mehr Sachen zum Ausblenden innerhalb von dem Tag "desc" aber ich will erstmal klein anfangen.
Ich habe das hier gefunden
<xsl:template match="table"/>
<xsl:template match="@\* | node()">
<xsl:copy>
<xsl:apply-templates select="@\* | node()"/>
</xsl:copy>
</xsl:template>
Das funktioniert bestimmt (auch wenn ich die Logik nicht verstehe) aber in meiner XSL klappt das nicht. Wo muss ich das denn einbauen oder tappe ich komplett im Dunkeln???
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" version="4.0" indent="yes"/>
<xsl:key name="nr1" match="section" use="@name"/>
<xsl:template match="/">
<html>
<body>
<table border="1" >
<tr>
<xsl:for-each select="key('nr1', 'Writing Indicators and Strategies')">
<td valign="top" align="left"><xsl:value-of select="@name"/></td>
</xsl:for-each>
</tr>
<tr>
<xsl:for-each select="library/chapter/section[@name='Writing Indicators and Strategies']/topic">
<td valign="top" align="left"><xsl:value-of select="@name"/></td>
</xsl:for-each>
</tr>
<tr>
<xsl:for-each select="library/chapter/section[@name='Writing Indicators and Strategies']/topic">
<td valign="top" align="left"><xsl:value-of select="desc"/></td>
</xsl:for-each>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Vielen Dank im Voraus.
Gruß
Henning