xsl:sort über Unterverzeichnis

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • xsl:sort über Unterverzeichnis

    Hi!
    Ich versuche jetzt seit einiger Zeit die xsl:sort Funktion richtig einzubinden und dachte irgendwie, dass ich das auch hätte, nur sortiert es mir die Werte nicht bzw. falsch.
    Hier meine xsl Datei.

    Quellcode

    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    3. <xsl:template match="unidaten">
    4. <html>
    5. <body>
    6. <table border="1">
    7. <tr bgcolor="#FF7A00">
    8. <th>Raum Nr</th>
    9. <th>Typ</th>
    10. <th>Sitze</th>
    11. <th>Beamer</th>
    12. <th>Fakultät</th>
    13. </tr>
    14. <xsl:for-each select="gebaeude/stockwerk/raum">
    15. <xsl:sort select="fakultaet" data-type="text"/>
    16. <xsl:sort select="sitze" data-type="number"/>
    17. <xsl:sort select="typ" data-type="text"/>
    18. <tr>
    19. <td><xsl:value-of select="@nr"/></td>
    20. <td><xsl:value-of select="typ"/></td>
    21. <td><xsl:value-of select="sitze"/></td>
    22. <td><xsl:value-of select="beamer"/></td>
    23. <td><xsl:value-of select="fakultaet"/></td>
    24. </tr>
    25. </xsl:for-each>
    26. </table>
    27. <table border="1">
    28. <h2>Serviceverzeichnis:</h2>
    29. <tr bgcolor="#218359">
    30. <th>Gebäude</th>
    31. <th>Raum Nr</th>
    32. <th>Typ</th>
    33. <th>Beamer</th>
    34. </tr>
    35. <xsl:for-each select="gebaeude">
    36. <xsl:for-each select="stockwerk/raum">
    37. <xsl:sort select="beamer" data-type="number" order="descending"/>
    38. <tr>
    39. <td><xsl:value-of select="gebaeude/strasse"/></td>
    40. <td><xsl:value-of select="@nr"/></td>
    41. <td><xsl:value-of select="typ"/></td>
    42. <td><xsl:value-of select="beamer"/></td>
    43. </tr>
    44. </xsl:for-each>
    45. </xsl:for-each>
    46. </table>
    47. </body>
    48. </html>
    49. </xsl:template>
    50. </xsl:stylesheet>
    Alles anzeigen


    Und die xml Datei:

    Quellcode

    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <!DOCTYPE unidaten SYSTEM "raumplan.dtd">
    3. <?xml-stylesheet type="text/xsl" href="raumansicht.xsl" ?>
    4. <unidaten>
    5. <gebaeude baujahr="2010">
    6. <adresse>
    7. <plz></plz>
    8. <ort></ort>
    9. <strasse>Baumstrasse</strasse>
    10. <nr>21</nr>
    11. </adresse>
    12. <kuerzel></kuerzel>
    13. <spitzname></spitzname>
    14. <wahl>Aufzug</wahl>
    15. <stockwerk nr="1">
    16. <raum nr="1">
    17. <typ>Hörsaal</typ>
    18. <sitze>110</sitze>
    19. <beamer>1</beamer>
    20. <fakultaet>GuK</fakultaet>
    21. </raum>
    22. <raum nr="2">
    23. <typ>Hörsaal</typ>
    24. <sitze>100</sitze>
    25. <beamer>2</beamer>
    26. <fakultaet>SoWi</fakultaet>
    27. </raum>
    28. <raum nr="3">
    29. <typ>Seminarraum</typ>
    30. <sitze>50</sitze>
    31. <beamer>2</beamer>
    32. <fakultaet>GuK</fakultaet>
    33. </raum>
    34. </stockwerk>
    35. <stockwerk nr="2">
    36. <raum nr="1">
    37. <typ>Seminarraum</typ>
    38. <sitze>60</sitze>
    39. <beamer>1</beamer>
    40. <fakultaet>SoWi</fakultaet>
    41. </raum>
    42. <raum nr="2">
    43. <typ>Büro</typ>
    44. <sitze>3</sitze>
    45. <beamer>0</beamer>
    46. <fakultaet>GuK</fakultaet>
    47. </raum>
    48. <raum nr="3">
    49. <typ>Labor</typ>
    50. <sitze>10</sitze>
    51. <beamer>1</beamer>
    52. <fakultaet></fakultaet>
    53. </raum>
    54. </stockwerk>
    55. </gebaeude>
    56. </unidaten>
    Alles anzeigen


    In der zweiten Tabelle sollen die Räume übergreifend nach Anzahl der Beamer sortiert werden. Das sort wird aber irgendwie komplett ignoriert. Wenn es in der inneren for-each schleife steht, dann wird aber auch nicht richtig sortiert.
    Noch dazu funktioniert <xsl:value-of select="gebaeude/strasse"/> nicht. Funktionieren an der Stelle absolute Pfade nicht?

    Sitze schon ne Weile daran, bin für jede Hilfe dankbar.