Johannes T: Dynamischer Variablenaufruf

Hallo,

ich müsste abhängig vom Namen eines XML Elements die passende Variable dazu aufrufen. Wie kann ich das machen ?

<xsl:template match="formular">

<xsl:variable name="firstname">    xsl:textVorname</xsl:text> </xsl:variable>

...

<xsl:for-each select="*"> <xsl:value-of select="$firstname"/> </xsl:for-each>

...

Woebi das $firstname nun dynamisiert werden müsste da das Element nicht nur firstname sondern auch name,nickname etc heißen könnte. Als Variable muss ich die Bezeichnungen definieren da sie nicht nur im formular template sondern auch zahlreichen anderen Templates definiert werden.

Vielen Dank im vorraus !

mfg Johannes

  1. ich müsste abhängig vom Namen eines XML Elements die passende Variable dazu aufrufen. Wie kann ich das machen ?

    Das XSL-Dokument als XML behandeln und XPATH-Ausdrücke darauf anwenden.

    1. Hää ???

      XSL ist doch ein XML Dokument was hat das damit zu tun ?
      Ich habe konkret gefragt wie ich dynamische Variablen benutzen kann.

      *verwundert*

      mfg

      1. Hallo,

        XSL ist doch ein XML Dokument was hat das damit zu tun ?
        Ich habe konkret gefragt wie ich dynamische Variablen benutzen kann.

        Er hat, wenn auch etwas kurzgebunden, eine richtige Antwort gegeben:

        <xsl:for-each select="*">
          <xsl:variable name="currentname" select="name()" />
        <xsl:value-of select="document('')//xsl:variable[@name = $currentname]"/>
        </xsl:for-each>

        Grüße
        Thomas

      2. Hää ???

        XSL ist doch ein XML Dokument was hat das damit zu tun ?

        Du plenkst.

        Ich habe konkret gefragt wie ich dynamische Variablen benutzen kann.

        Das habe ich Dir gesagt.

        1. Hallo,

          XSL ist doch ein XML Dokument was hat das damit zu tun ?

          Du plenkst.

          Nein, das hat er nicht.

          Ich habe konkret gefragt wie ich dynamische Variablen benutzen kann.

          Das habe ich Dir gesagt.

          Mehr oder weniger.
          Mit deiner Atnwort konnte nur jemand etwas anfangen, der die Antwort eigentlich gar nicht nötig hatte.

          Vielleicht hast du einfach einen schlechten Tag gehabt?

          Grüße
          Thomas

          1. Du plenkst.

            Nein, das hat er nicht.

            Doch :)