XSL - Abfrage über 2 Ebenen

  • XSL - Abfrage über 2 Ebenen

    Hi,

    ich habe eine XML Datei mit folgenden Aufbau:

    Quellcode

    1. <root>
    2. <eventlist>
    3. <event id="1">
    4. <name>testevent</name>
    5. <location id="1"/>
    6. <date>1.1.01</date>
    7. </event>
    8. </eventlist>
    9. <locationlist>
    10. <location id="1">
    11. <name>testlocation</name>
    12. </location> <!-- inserted by phax -->
    13. </locationlist>
    14. </root>
    Alles anzeigen


    Mein Problem ist, das ich es partout nicht hinbekomme mit XSL eine Abfrage zu generieren, die mir in einer Tabelle 1.1.01 testevent testlocation ausgibt.
    Kann mir bitte jemand einige Tipps geben die mich in die richtige Richtung bringen?!


    Danke
  • Mit Hilfe von Variablen geht es recht easy:

    Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    3. xmlns="http://www.w3.org/1999/xhtml">
    4. <xsl:output doctype-public="-//W3C//DTD XHTML 1.0//EN" method="html"/>
    5. <xsl:template match="//event">
    6. <xsl:variable name="locID" select="location/@id"/>
    7. <h1>Event <xsl:value-of select="@id" /></h1>
    8. <h2>Location: <xsl:value-of select="//location[@id=$locID]/name" /></h2>
    9. </xsl:template>
    10. <!-- ignore default output -->
    11. <xsl:template match="@*|text()" />
    12. </xsl:stylesheet>
    Alles anzeigen


    Hilft das?
    Getestet mit Saxon 8.7.3j und der obigen XML-Datei