Hi Ihr!
[x]
[a][/a]
[/x]
Ich möchte folgene Abfrage machen:
[xsl:if test=„name() = ‚b‘“]
mache etwas
[/xsl:if]
Das funktioniert, ich schaue also, ob der aktuelle Knoten b heisst.
Nun möchte ich aber wissen, ob der vorrige Knoten a heisst:
[xsl:if test=„name(self:
receding-sibling) = ‚a‘“]
mache etwas2
[/xsl:if]
Das funktioniert aber garnicht. Wieso, laut Anleitung sollte man in die Klammer der Funktion name() doch einen XPath Ausdruck reinschreiben können. Hat jemand nen Tipp für mich? danke!!!
(Ich habe statt der größer/kleiner-Zeichen [] hier für die Darstellung benutzt)
Hallo snaperl:
[xsl:if test=„name(self:
receding-sibling) = ‚a‘“]
mache etwas2
[/xsl:if]
Probiers mal so:
preceding-sibling::*[1]
Also explizit den ersten vorherigen Knoten.
preceding-sibling liefert alle Knoten davor, also dürfte name(…) scheitern.
Als Test auch einfach mal den Inhalt ausgeben:
[xsl:value-of select=„self:
receding-sibling“]
um zu sehen was das XPath hergibt.
mfg
Dirk.Pegasus
super, aber…
Hi!
Ganz klasse, vielen vielen Dank, hat so funktioniert:
[xsl:if test=„name(preceding-sibling::*[1]) = ‚a‘“]
Jetzt bin ich noch zu blöd ausgehend von dem Knoten a das Attribut name auszulesen:
[a name=„xxx“]
[xsl:value-of select=„preceding-sibling::*[1][@name]“/]
Hilfe! Hast Du da noch nen Tipp für mich?
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo snaperl
[xsl:value-of select=„preceding-sibling::*[1]/@name“/]
preceding-sibling::*[1] liefert einen node, darin das Element per/@name ansprechen.
ohne test …
mfg
Dirk.Pegasus
Hi!
Komisch, das ist logisch und ich dachte ich habe es auch ausprobiert! Vielen Dank, hat funktioniert!
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]