Hallo,
ich habe folgendes Problem, bei dem mir selbst ein Infoprof nicht weiterhelfen konnte:
Mittels XSLT verarbeite ich im Firefox oder IE eine XML.
Ich schreibe eine Tabelle aus den XML Daten, die wie im Folgenden erzeugt wird:
Im Template, dass ich hier über "apply-templates" anspreche steht Folgendes:
Jetzt möchte ich per JavaScript die Zeile <xsl:sort select="@name" /> (zu sehen im oberen Code-Fenster) ändern, so dass ich z.B. auf einen Button klicke und dieser das @name in z.B.: @weightValue ändert.
Über eine XSL-Variable scheint dies nicht möglich zu sein - da nach dem select nur XPATH-konforme Ausdrücke angenommen werden. Dass ist zumindest mein Kenntnisstand bis jetzt.
Hat da irgendjemand eine Idee? Wäre sehr dankbar für eine Lösung oder ein Denkansatz.
LG
Jan
ich habe folgendes Problem, bei dem mir selbst ein Infoprof nicht weiterhelfen konnte:
Mittels XSLT verarbeite ich im Firefox oder IE eine XML.
Ich schreibe eine Tabelle aus den XML Daten, die wie im Folgenden erzeugt wird:
HTML Code:
<table id="error" class="tabelle_2" width="100%" border="0" cellpadding="6" cellspacing="6"> <thead> <tr> <th width="70%" class="zweite_Tabelle">Prüf-Kriterium</th> <th width="9%" class="zweite_Tabelle">Fehler- Kennung</th> <th width="9%" class="zweite_Tabelle">Fehler- Anzahl</th> <th width="10%" class="zweite_Tabelle">Fehler- Korrektur</th> </tr> </thead> <tbody> <xsl:apply-templates select="CheckAnalysis/AnalysisTree/TreeNode"> <xsl:sort select="@name" /> </xsl:apply-templates> </tbody> </table>
HTML Code:
<xsl:template match="CheckAnalysis/AnalysisTree/TreeNode"> <tr> <td> <xsl:variable name="color" select="@color" /> <xsl:choose> <xsl:when test="$color = '00DC00'"> <img src="images/c_red.gif" /> </xsl:when> <xsl:when test="$color = '0000FF'"> <img src="images/c_blue.gif" /> </xsl:when> <xsl:when test="$color = 'FF4000'"> <img src="images/c_green.gif" /> </xsl:when> <xsl:otherwise> <img src="images/c_green.gif" /> </xsl:otherwise> </xsl:choose> <xsl:value-of select="@name"/> </td> <td class="rechtsb"> <xsl:value-of select="@weightValue"/> </td> <td class="rechtsb"> <xsl:value-of select="@numberOfMarked"/> </td> <td class="rechtsb"> <xsl:variable name="healing" select="@healStatus" /> <xsl:choose> <xsl:when test="$healing = '0'"> <xsl:text>-</xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="@healStatus"/> </xsl:otherwise> </xsl:choose> </td> </tr> <xsl:if test="TreeNode"> <script language="javascript"> //Tabellenzeilen ein- und ausblenden ***************************************** function verstecken() { var allElems = document.getElementsByTagName('*'); //bei * werden alle tags angesprochen, die den clannName haben (s.u.) ******** for <![CDATA[(var i = 0; i < allElems.length; i++)]]> { //CDATA, damit der Parser nicht auf XML Konformität prüft!!! ***************** var thisElem = allElems[i]; if (thisElem.className == 'elemente') { thisElem.style.display = 'none'; } } } function anzeigen() { //bei * werden alle tags angesprochen, die den clannName haben (s.u.) ******** var allElems = document.getElementsByTagName('*'); for <![CDATA[(var i = 0; i < allElems.length; i++)]]> { var thisElem = allElems[i]; //Browserweiche für Befehl display:table-row - kennt IE nicht **************** if (thisElem.className == 'elemente') { if (navigator.appName.indexOf("Explorer") != -1) { thisElem.style.display = 'block'; } else { thisElem.style.display = 'table-row'; } } } } </script> <xsl:for-each select="TreeNode"> <tr class="elemente" style="display:none;"> <td class="color"> <xsl:value-of select="@name"/> </td> <td class="rechtsb color"> <xsl:value-of select="@weightValue"/> </td> <td class="rechtsb color"> <xsl:value-of select="@checkResult"/> </td> <td class="rechtsb color"> <xsl:variable name="healing_2" select="@healResult" /> <xsl:choose> <xsl:when test="$healing_2 = '0'"> <xsl:text>-</xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="@healResult"/> </xsl:otherwise> </xsl:choose> </td> </tr> </xsl:for-each> </xsl:if> </xsl:template>
Über eine XSL-Variable scheint dies nicht möglich zu sein - da nach dem select nur XPATH-konforme Ausdrücke angenommen werden. Dass ist zumindest mein Kenntnisstand bis jetzt.
Hat da irgendjemand eine Idee? Wäre sehr dankbar für eine Lösung oder ein Denkansatz.
LG
Jan
Comment