SlowJoe: xsl + xsp variable in tag angeben

hallo
ich nutze cocoon 2.2

ich hab mir in meiner xsp datei eine expr gemacht die eine url enthält. diese kann ich auch in meiner xsl datei z.B. als text ausgeben.

was ich jetzt machen möchte ist mir in meiner meta-abstract ein template für ein iframe anlegen, welches in der xsl datei aufgerufen wird. dort möchte ich dann die variable url eintragen

meine definition in der meta-abstract

<xsl:template match="iframe">
   <iframe>
      <xsl:attribute name="src">
         xsl:value-ofselect="@src"/
      </xsl:attribute>
   </iframe>
</xsl:template>

in meiner xsl datei:

<!-- die variable ist global -->
<xsl:variable name="url"><xsl:value-of select="url"/></xsl:variable>

<iframe>
      <src><xsl:value-of select="url"/></src>
</iframe>

es wird zwar ein iframe erstellt jedoch wird die url nicht geladen.

ich hab schon mal einen button definiert jedoch hatte der nur angaben in der tag zeile. allerdings kann man hier ja keine angaben machen ala:

<iframe src="<xsl:value-of select="url"/>"/>
oder
<iframe src="@url"/>

hat jemand eine idee wie man das lösen könnte?

mfg slowjoe

  1. Hallo,

    meine definition in der meta-abstract

    <xsl:template match="iframe">
       <iframe>
          <xsl:attribute name="src">
             xsl:value-ofselect="@src"/
          </xsl:attribute>
       </iframe>
    </xsl:template>

    in meiner xsl datei:

    <!-- die variable ist global -->
    <xsl:variable name="url"><xsl:value-of select="url"/></xsl:variable>

    <iframe>
          <src><xsl:value-of select="url"/></src>
    </iframe>

    es wird zwar ein iframe erstellt jedoch wird die url nicht geladen.

    Nochmal:
    <xsl:attribute name="src">
       xsl:value-ofselect="@src"/
    </xsl:attribute>

    @src sucht nach einem Attribute src vom <iframe> das findet er aber nicht, weil du ein Element <src> im <iframe> hast.
    also:
    <xsl:attribute name="src">
       xsl:value-ofselect="src"/
    </xsl:attribute>

    zudem kommt mir für eine globale Variable ein:
    <xsl:variable name="url"><xsl:value-of select="url"/></xsl:variable>
    etwas komisch vor, denn eine globale Variable steht so:

    <xsl:stylesheet ....>
    <xsl:variable name="wasauchimmer" select="irgendwas"/>
    (oder <xsl:variable name="wasauchimmer"><xsl:value-of select="irgendwas"/></xsl:variable>

    "irgendwas" kann eine Pfadangabe sein, aber in deinem Fall würde es bedeuten, dass <url> das Root-Element der XML-Datei ist.

    Daher: deine globale Variable ist vermutlich auch falsch definiert, so dass schon darin nichts steht, unabhängig vom falschen Template für <iframe>.

    Grüße
    Thomas