GIG: variablenübergabe

hi,
ich hätt mal ne kleine xsl-newbie frage:

vorerst mein problem...
ich verwende xsl als anzeigetempl. einer xml db. .
nun benötige ich hier eine hilfsvariable, die ich dynamisch vergeben kann, um dem xsl-templ. zu sagen was es auslesen/darstellen soll.

wie kann ich dies realisieren bzw. wie kann ich die variable übergeben?

Ps.: hab kein php/mysql zur verfügung (von daher diese umstände)

  1. Hallo,

    vorerst mein problem...
    ich verwende xsl als anzeigetempl. einer xml db. .
    nun benötige ich hier eine hilfsvariable, die ich dynamisch vergeben kann, um dem xsl-templ. zu sagen was es auslesen/darstellen soll.

    Du kannst parameter in der URL übergeben, wenn deine anwendung (die der deine XML und XSL transformation ausführt, und diese dann in der stylesheet abfragen:
    url/datai.xml?parameter=wert

    <xsl:param name="paramter" />
    und abfragen:
    <xsl:if test="$parameter"> ...
    <xsl:if test="$parameter = 'blabla'"> ...  etc.

    Ich weiss nicht was deine XML-DB macht und kann. Führt sie die Transformation aus, oder wird sie dem Browser überlassen?

    Grüße
    Thomas

    1. Hi,
      also ich habs mal probiert mit dem übertragen, jedoch kommt nichts an bzw. kann ichs nicht auslesen.

      meine xml datei an sich ist eine stinknormale...(halt newbiemäßig
      ;-) )

      ...
      <?xml version="1.0" encoding="iso-8859-1"?>
      <!DOCTYPE daten SYSTEM "daten.dtd">
      <?xml-stylesheet href="daten.xsl" type="text/xsl"?>
      <liste>
        <1>
           <werte>
       <name>----irgendwas------</name>
       <farbe>-----irgendwas-----</farbe>
           </werte>
        </1>
        etc.

      ...

      und die xsl-datei hat ne for each schleife zum auslesen von bestimmten knotenpunkten hier knotenpunkt "1/werte" unter "liste"

      ...
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:param name="wert" />
      <xsl:template match="/">
      <h1>dbausgabe</h1>
      <a href="daten.xml?wert=1">1</a>
      <a href="daten.xml?wert=2">2</a>
      <table border="1">
       <tr>
          <th>Name</th>
          <th>Farbe</th>
       </tr>
       <xsl:if test="$wert = '1'">             <<==
       <xsl:for-each select="liste/1/werte">   <<==
              etc.
      ...
      und um den(<<==) markierten bereich dreht sich mein prob.
      es soll halt alles unter "1" u.a. angezeigt werden.
      ich hab auch mal die übergabe mit drin gelassen - kann ja sein das ich was übersehen hab.

      thx schonmal

      mfg gig

      Hallo,

      vorerst mein problem...
      ich verwende xsl als anzeigetempl. einer xml db. .
      nun benötige ich hier eine hilfsvariable, die ich dynamisch vergeben kann, um dem xsl-templ. zu sagen was es auslesen/darstellen soll.

      Du kannst parameter in der URL übergeben, wenn deine anwendung (die der deine XML und XSL transformation ausführt, und diese dann in der stylesheet abfragen:
      url/datai.xml?parameter=wert

      <xsl:param name="paramter" />
      und abfragen:
      <xsl:if test="$parameter"> ...
      <xsl:if test="$parameter = 'blabla'"> ...  etc.

      Ich weiss nicht was deine XML-DB macht und kann. Führt sie die Transformation aus, oder wird sie dem Browser überlassen?

      Grüße
      Thomas

      1. Hallo,

        <?xml-stylesheet href="daten.xsl" type="text/xsl"?>

        Das impliziert, dass du die Trasnformation dem Browser überläßt.
        Die Browser können noch keine Parameter über URLs auswerten.

        Das einzige was du noch ohne einer serverseitge Verarbeitung machen kannst, dass du versuchst per JavaScript Paramters bzw. Variablen zu übergeben.
        Dazu findest du einiges im Archiv von Thomas Meinike.

        Grüße
        Thomas

      2. Hallo,

        <liste>
          <1>

        Elementnamen duerfen nicht mit Ziffern beginnen.

        MfG, Thomas

        1. hi,
          sorry, habs blos ein wenig vereinfacht - hab da etwas lange namen stehen... (... und somit nur noch komplizierter gemacht ...)

          hab mir eben mal das mit den js-möglichkeiten angeschaut - was mich noch mehr verwirrt hat als ich ohnehin schon bin... ;-)

          hab momentan 'n blackout - werds heute aufgeben und morgen weiter versuchen...

          thx for all

          mfg gig

          Hallo,

          <liste>
            <1>

          Elementnamen duerfen nicht mit Ziffern beginnen.

          MfG, Thomas

  2. Hi,

    wie kann ich dies realisieren bzw. wie kann ich die variable übergeben?

    http://selfhtml.teamone.de/xml/darstellung/xsltelemente.htm#param

    Ps.: hab kein php/mysql zur verfügung (von daher diese umstände)

    Ohne eine Einbettung in ein Programm wirst Du schwerlich Deinem Stylesheet einen Parameter übergeben können..

    Gruß
    Franz