PeterK: XSL - Split

Beitrag lesen

Also folgendes:

Das xsl-Script wird von einem php-script aus aufgerufen. Es stellt soll eine Menü-Datei in ein Aufklappbares Menü verwandeln.

Die Menü-XML ist folgendermaßenm aufgebaut:

<menu>
 <item name="start" text="Startseite" link="internal://start" />
 <item name="ich" text="Ich">
  <item name="steckbrief" text="Steckbrief" link="internal://ich/steckbrief" />
  <item name="lebenslauf" text="Lebenslauf" link="internal://ich/lebenslauf" />
  <item name="kontakt" text="Kontakt" link="internal://ich/kontakt" />
 </item>
 <item name="projekte" text="Projekte">
  <item name="php" text="PHP">
   <item name="pxml" text="PXML" link="internal://projekte/php/pxml" />
   <item name="xmldoc" text="XMLDoc" link="internal://projekte/php/xmldoc" />
   <item name="xmlmenu" text="XMLMenu" link="internal://projekte/php/xmlmenu" />
  </item>
  <item name="vb" text="VB">
   <item name="sbiii" text="SB III" link="internal://projekte/vb/sbiii" />
  </item>
  <item name="bbs4u" text="BackBone-Systems 4u">
   <item name="forum" text="Das Forum" link="http://forum.backbone-systems4u.de" extern="true" />
   <item name="chat" text="Der Chat" link="http://chat.backbone-systems4u.de" extern="true" />
  </item>
 </item>
 <item name="impressum" text="Impressum" link="internal://impressum" />
</menu>

Das xsl-Script reagiert nun auf den menu-Eintrag und ruft dann per xsl:call-template ein Template auf, dass sich dannentsprechend den Sub-Items selbst wieder aufruft. (Rekursion). Das funktioniert auch wunderbar. Als ergebnis erhalte ich in etwa folgendes:

Start
Ich
  Steckbrief
  Lebenslauf
  Kontakt
Projekte
  PHP
    PXML
    XMLDoc
    XMLMenu
  VB
    SB III
  BackBone-Systems 4u
    Das Forum
    Der Chat
Impressum

Nun soll aber über eine Get-Variable, die ich dem Php-Script übergeben die Ausgabe geregelt werden. Der Wert der GET-Variable wird dem XSLT-Prozessor als Parameter übergeben. Also wenn die Variable "ich" enthält, dann soll die ausgabe

Start
Ich
  Steckbrief
  Lebenslauf
  Kontakt
Projekte
Impressum

lauten. Wenn die Variable "projekte.vb" lauten, dann wird dass ausgegebn:

Start
Ich
Projekte
  PHP
  VB
    SB III
Impressum

Um das zu erreichen muss ich den Pfad, also den Inhalt der Variable an den punkten trennen und dazu benötige ich eine Split-Funktion.

Was MudGuard gesagt hat, mit den Mehreren Variablen, geht nciht, da der Pfad ja eine Beliebeige Tiefe haben kann, ich also nicht weiß wieviele Parameter ich brauche...

Hoff ich konnte dass jetzt etwas verständlicher machen.
Peter