Problem mit xsl:key

Hallo Forum,

ich brauche mal wieder eure Hilfe. Ich bastel gerade an einer xslt für mein XML Dokument. Um ein Inhaltsverzeichnis zu erstellen, verwende ich xsl:key udn xsl:count. Das klappt auch wenn ich einen Text übergebe. Nehme ich stattdessen einen Parameter (selber Inhalt) funktioniert es nicht mehr.

mit $aktuelles_System = ‚System1‘ funktioniert nicht

Hat einer eine Idee woran das liegt. Hab schon im Internet danach gesucht, aber alles was ich gefunden habe bestätigt meine Lösung (welche aber ja leider nicht funktioniert).

Wäre echt dankbar für jeden Tipp.
Grüße Sunny

Hier ein Auszug aus dem XSLT-Code:

Hallo Sunny,

eine Lösung habe ich nicht. Ich bin mir auch nicht sicher, was Du mit „funktioniert es nicht mehr“ meinst. Schmeisst der Prozessor einen Fehler, kommt count=0, passiert gar nichts?

Aber Du könntest das Folgende überprüfen:

  1. Mach’ typesafe, vielleicht kommt dann ein Fehler der Dir weiterhilft.

  2. Lass’ Dir bei der Trafo eine xsl:message über den Inhalt des Parameters an die Kommandozeile schreiben.

  3. Probier eine default-Zuweisung des param-Inhalts auf Dein ‚System1‘

  4. Eine unterschätze Site:
    http://www.jenitennison.com/xslt/

BTW: Ich kenne das mit dem level=„multiple“ nicht?!

hth,
Stefan

Hi Stefan

danke für deine Antwort. Die Fehlermeldung hätte ich mal noch mit dazu schreiben sollen. Sorry!

Error Transforming XML
Erwartet wurde das Token ‚‘. Vorgefunden wurde ‚$‘. …(‚Funktionsgruppe_nach_System‘, -->$

Hi Sunny,

d.h. wenn Du Deinen xsl:stuck_out_tongue:aram mit einem type=„xs:string“ versiehst bekommst Du eine Type-Fehlermeldung?

anstatt $aktuelles_System könntest Du es mit sring($aktuelles_System) versuchen.
Und überprüfe mal, ob Du das mit dem multilevel benötigst; ich kenne das nicht und ich schmeisse erst mal alles was ich nicht kenne raus :wink:

Arbeitest Du an der Kommandozeile oder mit XMLSpy, StylusStudio? Welchen Paresr nimmst Du?

hth,

Stefan

Hi Stefan,

ich habs gelöst. Es liegt irgendwie daran, dass ich in einem xsl:number objekt für das count keine Variable übergeben darf. Der Ausdruck an sich hat nämlich gestimmt, wenn ich das Ganze nicht über das xsl:number Objekt gemacht habe.

Ich habe nun einen anderen Weg gefunden. Und zwar übergebe ich jetzt ein XPath der das Gleiche macht wie xsl:key.

So sieht es dann aus:

Vielen Dank für deine Unterstützung.

Grüße Sunny