Hallo,
ich habe diese xml-Datei die ich sortieren muss. Mein xsl sieht so aus:
und xml:
ich bekomme diese ergebnis:
<li><a id="Tab_1">B.Sc.</a></li>
<li><a id="Tab_1">B.Sc.-NF</a></li>
<li><a id="Tab_1">M.Sc.</a></li>
und ich brauche:
<li><a id="Tab_1">B.Sc.</a></li>
<li><a id="Tab_2">B.Sc.-NF</a></li>
<li><a id="Tab_3">M.Sc.</a></li>
und das gleiche auch bei TabKat. kann mir jemand dabei helfen? ich habe keine Ahnung warum mir die variable nicht mitzählt.
Ich freue mich über jede Hinweis.
Gruß
Dana
ich habe diese xml-Datei die ich sortieren muss. Mein xsl sieht so aus:
Code:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> <xsl:key name="Fach" match="Ueberschrift" use="UebKommentar"/> <xsl:template match="/"> <xsl:call-template name="script"/> <div id="lv-veranstaltungen"> <xsl:call-template name="navigation"/> <xsl:apply-templates select="Tree/Ebene[@ueebene=1]"/> </div> </xsl:template> <xsl:template name="navigation"> <div id="lv-navigation" class="clearfix"> <div id="lv-navOben" class="clearfix"> <div id="lv-navFach" class="clearfix"> <ul class="clearfix"> <xsl:for-each select="Tree/Ebene[@ueebene=1]/Ueberschrift[generate-id(.)=generate-id( key('Fach',UebKommentar)[1])]"> <xsl:variable name="tabNummer"> <xsl:number/> </xsl:variable> <li><a> <xsl:attribute name="id">Tab_<xsl:value-of select="$tabNummer"/></xsl:attribute> <xsl:value-of select="UebKommentar"/></a></li> </xsl:for-each> </ul> </div> </div> <div id="lv-navKategorie"> <xsl:for-each select="Tree/Ebene[@ueebene=1]/Ueberschrift[count(. | key('Fach',UebKommentar)[1])]"> <xsl:for-each select="key('Fach',UebKommentar)"> <xsl:variable name="tabKatNummer"> <xsl:number/> </xsl:variable> <span class="lv-tabKategorie"> <xsl:attribute name="id">TabKat_<xsl:value-of select="$tabKatNummer"/></xsl:attribute> <span class="lv-kat"> <a> <xsl:attribute name="href"> #katAnker_<xsl:value-of select="generate-id(.)"/> </xsl:attribute> <xsl:value-of select="UeBez"/> </a> </span> </span> </xsl:for-each> </xsl:for-each> </div> <div id="lv-navKategorie"><span class="lv-tabKategorie" id="TabKat_0"/> <xsl:for-each select="Tree/Ebene[@ueebene=1]"> <xsl:variable name="tabKatNummer"> <xsl:number/> </xsl:variable> <span class="lv-tabKategorie"> <xsl:attribute name="id">TabKat_<xsl:value-of select="$tabKatNummer"/></xsl:attribute> <xsl:for-each select="Ebene[@ueebene=2]"> <span class="lv-kat"><a> <xsl:attribute name="href">#katAnker_<xsl:value-of select="generate-id(.)"/></xsl:attribute> <xsl:value-of select="Ueberschrift/UeBez"/></a></span> </xsl:for-each> </span> </xsl:for-each> </div> </div> </xsl:template>
Code:
<?xml version="1.0" encoding="UTF-8"?> <Tree> <Ebene ueebene="1"> <Ueberschrift> <UeBez>Titel1</UeBez> <UebKommentar>B.Sc.</UebKommentar> </Ueberschrift> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung1</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung2</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung3</UeBez> </Ueberschrift> </Ebene> </Ebene> <Ebene ueebene="1"> <Ueberschrift> <UeBez>Titel2</UeBez> <UebKommentar>B.Sc.</UebKommentar> </Ueberschrift> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung1</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung3</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung4</UeBez> </Ueberschrift> </Ebene> </Ebene> <Ebene ueebene="1"> <Ueberschrift> <UeBez>Titel3</UeBez> <UebKommentar>B.Sc.</UebKommentar> </Ueberschrift> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung1</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung2</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung3</UeBez> </Ueberschrift> </Ebene> </Ebene> <Ebene ueebene="1"> <Ueberschrift> <UeBez>Titel4</UeBez> <UebKommentar>B.Sc.-NF</UebKommentar> </Ueberschrift> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung1</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung2</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung3</UeBez> </Ueberschrift> </Ebene> </Ebene> <Ebene ueebene="1"> <Ueberschrift> <UeBez>Titel5</UeBez> <UebKommentar>B.Sc.-NF</UebKommentar> </Ueberschrift> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung1</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung2</UeBez> </Ueberschrift> </Ebene> </Ebene> <Ebene ueebene="1"> <Ueberschrift> <UeBez>Titel6</UeBez> <UebKommentar>M.Sc.</UebKommentar> <ZUebPostnotiz /> </Ueberschrift> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung1</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung2</UeBez> </Ueberschrift> </Ebene> <Ebene ueebene="2"> <Ueberschrift> <UeBez>Übung3</UeBez> </Ueberschrift> </Ebene> </Ebene> </Tree>
ich bekomme diese ergebnis:
<li><a id="Tab_1">B.Sc.</a></li>
<li><a id="Tab_1">B.Sc.-NF</a></li>
<li><a id="Tab_1">M.Sc.</a></li>
und ich brauche:
<li><a id="Tab_1">B.Sc.</a></li>
<li><a id="Tab_2">B.Sc.-NF</a></li>
<li><a id="Tab_3">M.Sc.</a></li>
und das gleiche auch bei TabKat. kann mir jemand dabei helfen? ich habe keine Ahnung warum mir die variable nicht mitzählt.
Ich freue mich über jede Hinweis.
Gruß
Dana
Comment