Henning1980: Ausblenden von einem bestimmten Knoten

Beitrag lesen

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