Maurizio Leonardi: XML / XSL / PHP - Adressleiste auslesen

Hallo

Wie kann ich mit XSL eine Variabel aus der Adressleiste auslesen?
Ich benutze Sablotron als Processor und PHP 4.3.3 und kenne mich damit noch gar nicht so gut aus.

Code in PHP:
----------------------------------------------
<?
echo phpinfo();
$zeiger = xslt_create();
$navigation_seite= xslt_process($zeiger, 'navigation.xml', 'standard.xsl');
xslt_free($zeiger);
echo $navigation_seite;
?>

Code in XSL:
----------------------------------------------
....

<div id="content">

<xsl:for-each select="nav">
<div><xsl:value-of select="title" /></div>
</xsl:for-each>

<h1><xsl:value-of select="document('home.xml')/inhalt/seite/h1" /></h1>

<xsl:value-of select="document('home.xml')/inhalt/seite/text" />

</div>

....

home.xml sollte dynamisch werden und das möchte ich über die Adresszeile. Die URL sieht dann zum Beispiel so aus: http://www.domain.com/?id=home

Ist dies überhaupt möglich?

Besten dank für ein Feedback schon im voraus.

Grüsse

  1. Hallo!

    Wie kann ich mit XSL eine Variabel aus der Adressleiste auslesen?

    Da du auch mit PHP arbeitest, könnte ich mir vorstellen, dass du den GET-Parameter mit PHP ausliest und das dann an XSL irgendwie weitergibst.

    Ob das funktioniert, kann ich nicht sagen. Hab selber nicht so wirklich eine Ahnung :-P Aber vielleicht hilft es ja.

    Sonst wäre es auch eine Möglichkeit Google zu befragen. Vielleicht findet sich dort noch etwas hilfreiches.

    ciao, ww

    --
    Schäuble:
      "Wir können alles. Außer Rechtsstaat."
    1. Hallo!

      Wie kann ich mit XSL eine Variabel aus der Adressleiste auslesen?

      Da du auch mit PHP arbeitest, könnte ich mir vorstellen, dass du den GET-Parameter mit PHP ausliest und das dann an XSL irgendwie weitergibst.

      Ob das funktioniert, kann ich nicht sagen. Hab selber nicht so wirklich eine Ahnung :-P Aber vielleicht hilft es ja.

      Sonst wäre es auch eine Möglichkeit Google zu befragen. Vielleicht findet sich dort noch etwas hilfreiches.

      ciao, ww

      Hallo!
      Danke für die Antwort.
      Ja das ist das Problem. Dass man mit GET die Paramater ausliest mit PHP, das ist mir bekannt, nur eben die Übergabe....in XSL selber kann man soviel ich weiss keinen PHP Code benutzen.

      trotzdem Danke.

  2. Hallo,

    Wie kann ich mit XSL eine Variabel aus der Adressleiste auslesen?

    Überhaupt nicht.

    Ich benutze Sablotron als Processor und PHP 4.3.3 und kenne mich damit noch gar nicht so gut aus.

    Code in PHP:

    <?
    echo phpinfo();
    $zeiger = xslt_create();
    $navigation_seite= xslt_process($zeiger, 'navigation.xml', 'standard.xsl');

    Suche in der PHP-Doku nach set_parameter().
    Lese dann den Paramtrer im XSLT aus und füge ihn dort ein wo du ihn brauchst.

    Grüße
    Thomas

    1. irgendwie schnall ich das nicht. ich hab folgender code probiert:

      <?
      $zeiger = xslt_create();
      $navigation_seite= xslt_process($zeiger, 'navigation.xml', 'standard.xsl');
      xslt_free($zeiger);
      $proc->setParameter('', 'owner', $name);
      echo $navigation_seite;
      ?>

      er meldet folgendes:
      Fatal error: Call to a member function on a non-object in xxxx.php on line 5

      Hallo,

      Wie kann ich mit XSL eine Variabel aus der Adressleiste auslesen?

      Überhaupt nicht.

      Ich benutze Sablotron als Processor und PHP 4.3.3 und kenne mich damit noch gar nicht so gut aus.

      Code in PHP:

      <?
      echo phpinfo();
      $zeiger = xslt_create();
      $navigation_seite= xslt_process($zeiger, 'navigation.xml', 'standard.xsl');

      Suche in der PHP-Doku nach set_parameter().
      Lese dann den Paramtrer im XSLT aus und füge ihn dort ein wo du ihn brauchst.

      Grüße
      Thomas

      1. Hallo,

        irgendwie schnall ich das nicht. ich hab folgender code probiert:

        <?
        $zeiger = xslt_create();
        $navigation_seite= xslt_process($zeiger, 'navigation.xml', 'standard.xsl');
        xslt_free($zeiger);
        $proc->setParameter('', 'owner', $name);
        echo $navigation_seite;
        ?>

        er meldet folgendes:
        Fatal error: Call to a member function on a non-object in xxxx.php on line 5

        Du verwendest die alten Sachen von PHP. Sofern du nur PHP 4.x hast, ist das OK, sonst solltest du die Funktionen von PHP 5 benutzen:
        http://www.php.net/manual/en/function.xsl-xsltprocessor-set-parameter.php#id7968471

        Bei PHP 4 solltest du die Seite: http://www.php.net/manual/en/function.xslt-process.php durchlesen:

        $parameters = array (
          'myparam' => 'test',
          'myparam2' => 'noch ein test'
        );

        xslt_process($zeiger, 'navigation.xml', 'standard.xsl', NULL, NULL, $parameters);

        Grüße
        Thomas