Dragon: XSL bestimmten Knotenbereich bestimmen

Beitrag lesen

hallo

Danke erstmal für die Antwort, bin grade nicht zuhause und schau es mir später an. Auf den ersten Blick scheint es allerdings die Lösung zu meinem Problem zu sein, Danke!

büdde büdde :-))

Mit dem Wechsel hast Du natürlich Recht, das ist ein Tippfehler von mir. Ich wollte das eigentliche XML verkürzen und vereinfachen und habe dabei den Fehler mit der Bezeichnung label / nodelabel gemacht.

Na dann, nochmal ohne nodelabel.

**** Datei: node.xsl ****

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<!-- abarbeitung ab root-tag: /, sonst z.B. "main" -->
  <TABLE BORDER="1">
    <TR>
      <TD><H1>Node</H1></TD>
      <TD><H2>Label</H2></TD>
      <TD><H4>Position</H4></TD>
    </TR>
     <xsl:for-each select="main">
      xsl:apply-templates/
<!-- Es wird fuer jeden Datensatz nach einem passenden Template gesucht -->
     </xsl:for-each>
  </TABLE>

</xsl:template>
<xsl:template match="node1">
  <TR BGCOLOR="lightblue">
    <TD><H2>node1</H2></TD>
     <TD><H3><xsl:value-of select="label"/></H3></TD>
        <TD><H4><xsl:value-of select="position"/></H4></TD>
  </TR>
 </xsl:template>

<!-- Unterdruecke Anzeige fuer node2 -->
 <xsl:template match="node2">
  </xsl:template>

<!-- Anzeige fuer node3 in anderer farbe -->
 <xsl:template match="node3">
     <TR BGCOLOR="red">
      <TD><H2>node3</H2></TD>
   <TD><H3><xsl:value-of select="label"/></H3></TD>
       <TD><H4><xsl:value-of select="position"/></H4></TD>
     </TR>
 </xsl:template>

</xsl:stylesheet>

**** Datei: node.xml ****

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<!--
                    XML-Lable 08-2004
-->
<!-- Verschönerung mit extensible stylesheet language -->
<?xml-stylesheet href="node.xsl" type="text/xsl"?>
<!-- geht auch mit css: "style.css" type="text/css", aber nicht so gut -->
<!DOCTYPE main [
<!-- ELEMENT-Zeilen können in beliebiger Reihenfolge stehen -->
<!ELEMENT main (node1,node2?,node3?)+>
<!-- + steht für ein oder mehrere -->
<!ELEMENT node1 (label?,position?)>
<!ELEMENT node2 (label?,position?)>
<!ELEMENT node3 (label?,position?)>
<!-- ? steht für optional, Reihenfolge muß exakt eingehalten werden
     (tag1?,tag2?,...)+ steht für beliebig -->
<!ELEMENT label (#PCDATA)>
<!-- #PCDATA = parced character data = belebige Zeichenkette -->
<!ELEMENT position (#PCDATA)>
]>

<main>
  <node1>
    <label>Test1</label>
    <position>1.1</position>
  </node1>
  <node1>
    <label>Test2</label>
    <position>1.2</position>
  </node1>
  <node2>
    <label>Test3</label>
    <position>1.2.1</position>
  </node2>
  <node3>
    <label>Test4</label>
    <position>1.2.1.1</position>
  </node3>
  <node1>
    <label>Test5</label>
    <position>1.3</position>
  </node1>
<!-- usw.-->
</main>

mfg

Das Schmunzelmonster