Announcement

Collapse
No announcement yet.

Globale Variable Definieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Globale Variable Definieren

    <P>
    <BR>Hallo XSLT-Profis!
    <BR>Ich habe ein Problem mit einer XPath-Anweisung,
    <BR>und zwar möchte ich die ID eines Elementes als globale Variable in <BR>einem Stylesheet festhalten. Der Element wird anhand eines bestimmten <BR>Unterelementes ausgesucht. Mit anderen Worten:"Wenn die Klasse SOWIESO <BR>heisst, dann merke ihre ID" D.h. in XML:
    <B>
    <PRE><Class class.id="R1.5">
    <Class.Name>Organisationseinheit</Class.Name>
    </Class></PRE>
    </B>
    <BR>Die ID innerhalb eines Templates auszulesen ist kein Problemm:
    <B>
    <PRE><xsl:template match="//Class">
    <xsl:if test="Class.Name='Organisationseinheit'">
    <xsl:variable name="OE_ID" select="./@class.id"/>
    </xsl:if>
    </xsl:template></PRE>
    </B>
    <BR>aber dann ist die Variable nur lokal definiert.
    <BR>Globale Definition benötigt die Deklaration der Variablen ausserhalb <BR>der Templates, d.h nur mit dem
    <B>
    <PRE><xsl:variable name="Var1" select="entspr. XPath"/></PRE>
    </B>
    <BR>Hat jemand eine Idee, mit welchem XPath ich die Variable als global <BR>definieren kann?
    <BR><BR>
    Mit bestem Dank im Voraus
    <BR><BR>
    Dieter
    </P>

  • #2
    hilft vielleicht das auslagern der problematik in eine "globale" XSL-Datei? die kannst du dann mittels

    <PRE>
    <xsl:include href="na-wo-issie?"/>
    </PRE>

    einbinden. Wenn du nicht unbedingt eine Variable brauchst (wird aus deinem Text nicht klar), sondern die ID nur textuell, dann kannst du in dem globalen Stylesheet ein benamtes Template erzeugen, dass die die ID liefert:

    <PRE>
    <xsl:template name="OE_ID">
    <xsl:value-of select="./@class.id"/>
    </xsl:template>
    </PRE>

    vielleicht auch ne lösung?
    zu globalen Variablen fällt mir jetzt nix ein.

    gruss, patric

    Comment


    • #3
      Vielen Dank Patrick, für Deine Vorschläge.
      <BR>Du hast recht. globale Variable ist eine der Möglichkeiten.
      <BR>Ich probiere jetzt noch die Parameterübergabe zwischen den Templates aus.
      <BR>Ich möchte innerhalb des ganzen Stylesheet's in beliebigen Stellen auf diese ID zugreifen könenn.
      <BR>Somit scheint mir die Lösung mit der glob. Var. doch am einfachsten
      <BR><BR>Gruß, Diete

      Comment


      • #4
        Versuchs indem du mit der root beginnst:
        &lt;xsl:variable name="Var1" select="/...Class/@class.id"/>

        Bernwar

        Comment


        • #5
          Hallo Bernward.

          Mei Problem ist genau die Zeile zwischen den Hochkommas nach dem selekt:<BR> <B><xsl:variable name="var1" selekt="?????"/></B><BR>
          Wie bekomme ich die ID eines bestimmten Elementes, wobei dieser<BR> Element aufgrund des Wertes seines Unterelementes bestimmt wird!?<BR>
          <BR>
          Gruß, Diete

          Comment


          • #6
            <br>Ich hab's! Wie es auch sein sollte, relativ simpel:
            <b><pre><xsl:variable name="OE_ID" select="//Class[Class.Name='Organisationseinheit']/@class.id"/></pre></b>
            <br>
            Viel Spaß an XSLT ) <br>
            Gruß, Diete

            Comment

            Working...
            X