XML Daten per dropdown auswählen (via XSL)

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

  • XML Daten per dropdown auswählen (via XSL)

    Hallo,
    ich bin gerade dabei mich in die XML/XSLT-Thematik einzuarbeiten (bin also Newbie :) und stoße da an ein Verständnis/Umsetzungs-Problem.

    Meine XML-Datei ist so aufgebaut und soll per XSLT als HTML ausgegeben werden:

    Quellcode

    1. <?xml version="1.0" encoding="iso-8859-1" ?>
    2. <?xml-stylesheet type="text/xsl" href="style.xsl" version="1.0"?>
    3. <Root>
    4. <Section Name="Sec1">
    5. <SectionTitle>Xyz</SectionTitle>
    6. <OutputData Name="XYZ">
    7. <DataTitle>First Header Xyz</DataTitle>
    8. <DataInfo>Ein paar Infos/Text 1.</DataInfo>
    9. </OutputData>
    10. </Section>
    11. <Section Name="Sec2">
    12. <SectionTitle>ZXY</SectionTitle>
    13. <OutputData Name="ZXY">
    14. <DataTitle>First Header ZXY</DataTitle>
    15. <DataInfo>Ein paar Infos/Text 2.</DataInfo>
    16. </OutputData>
    17. </Section>
    18. <Section Name="Sec3">
    19. <SectionTitle>TZR</SectionTitle>
    20. <OutputData Name="TZR">
    21. <DataTitle>First Header TZR</DataTitle>
    22. <DataInfo>Ein paar Infos/Text 3.</DataInfo>
    23. </OutputData>
    24. </Section>
    25. ...
    26. </Root>
    Alles anzeigen


    Ich möchte jetzt über ein Dropdown (Formular: <select>), daß alle Werte von SectionTitle und den Section[@Name] als zu übergebenden Wert enthält (also so: <option value="Section[@Name]">SectionTitle </option>), genau die entsprechende OutputData im Dokument anzeigen lassen. Also wenn ich im Dropdown ZXY auswähle wird nur die Section Sec2 angezeigt, usw.

    Hier mein Versuch der XSLT Datei:

    Quellcode

    1. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    2. <xsl:output method="html"/>
    3. <xsl:template match="/Root">
    4. <html>
    5. <head>
    6. <title>TEST</title>
    7. </head>
    8. <body>
    9. <form name="f1" method="post">
    10. <select name="header" onchange="self.document.f1.submit();">
    11. <option>---</option>
    12. <xsl:apply-templates select="Section/SectionTitle"/></select>
    13. </form>
    14. <br/>
    15. <br/>
    16. <xsl:choose>
    17. <xsl:when test="select[@name='header']='ZXY'">
    18. <xsl:apply-templates select="//Section[@Name='Sec2']/OutputData/*"/>
    19. </xsl:when>
    20. <xsl:otherwise>
    21. <xsl:apply-templates select="//Section[@Name='Sec1']/OutputData/*"/>
    22. </xsl:otherwise>
    23. </xsl:choose>
    24. </body>
    25. </html>
    26. </xsl:template>
    27. <xsl:template match="Section/SectionTitle">
    28. <option><xsl:apply-templates/></option>
    29. </xsl:template>
    30. <xsl:template match="OutputData/DataTitle">
    31. <h1><xsl:apply-templates/></h1>
    32. </xsl:template>
    33. <xsl:template match="OutputData/DataInfo">
    34. <i><xsl:apply-templates/></i>
    35. </xsl:template>
    36. </xsl:stylesheet>
    Alles anzeigen


    Mein Verständnis-Problem: Wie kann ich die vom POST-Formular (das select feld) übergebenen Variablen so verwenden, daß ich sie in die choose-abfrage richtig einbaue. Wie kann ich generell Post/Get-Variablen einbinden? Sitze jetzt schon ne weile dran und langsam schwirrt mir der Kopf :(

    Wäre sehr dankbar für eine Hilfe / Denkanstoss / Hinweis!

    1000Dank & schöne Grüße!
    Björn