import u. variable
josef stebegg
- xsl
Hallo!
Da mir ein Stylesheet schon ziemlich lang wird, wollte ich es mit xsl:import aufteilen und mit xsl:variable (global) vereinfachen.
-----------
Ein:
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="kuk5.xsl"?>
<xsl:import href="kuk5imp.xsl"/>
verursacht mir aber diese Fehlermeldung:
Verweis auf ein nicht deklariertes Namespace-Präfix: 'xsl'. Fehler beim Bearbeiten der Ressource...
Wobei das in diesem Fall zwei gleiche xsl sind.
-----------
Der Einsatz von globalen Variablen ist mir bis jetzt auch noch nicht gelungen.
Das soetwas nicht geht:
<xsl:variable name="geburt">left:<xsl:value-of select="@geburt*3-4432" />px</xsl:variable>
kann ich mir schon vorstellen.
Das ist offensichtlich auch nicht erlaubt:
<xsl:variable name="landfarben">color:#xsl:choose
<xsl:when test="@land='erblande'">c90</xsl:when>
<xsl:when test="@land='spanien'">999</xsl:when>
<xsl:when test="@land='portugal'">669</xsl:when>
<xsl:when test="@land='boemen'">963</xsl:when>
<xsl:when test="@land='bayern'">b8bb35</xsl:when>
<xsl:when test="@land='reichsfuersten'">b8bb35</xsl:when>
xsl:otherwise<xsl:value-of select="@farbe"/></xsl:otherwise></xsl:choose></xsl:variable>
Gibt es da eine andere "Einsparungsmoeglichkeit" ?
Hier bitte eine "lifedemo" (ohne import u. variable)
http://www.innonet.at/~jstebegg/xml/kuk2sp.xml bzw. kuk5.xsl
gruesse
josef
Hallo,
Ein:
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="kuk5.xsl"?>
<xsl:import href="kuk5imp.xsl"/>
verursacht mir aber diese Fehlermeldung:
Verweis auf ein nicht deklariertes Namespace-Präfix: 'xsl'. Fehler beim Bearbeiten der Ressource...
Vermutlich hast Du xsl:import in die XML-Datei geschrieben?! (Ja, sieht in Deinem Online-Beispiel so aus.)
Der Einsatz von globalen Variablen ist mir bis jetzt auch noch nicht gelungen.
Das soetwas nicht geht:
<xsl:variable name="geburt">left:<xsl:value-of select="@geburt*3-4432" />px</xsl:variable>
kann ich mir schon vorstellen.
Doch, das funktioniert. Nur muss klar sein, aus welchem Kontext der Attributwert von geburt geholt werden soll.
MfG, Thomas
Danke fuer Deine Antwort.
Vermutlich hast Du xsl:import in die XML-Datei geschrieben?! (Ja, sieht in Deinem Online-Beispiel so aus.)
Ein schlimmer Anfaengerfehler (zu viele neue Sachen auf einmal !)
Das soetwas nicht geht:
<xsl:variable name="geburt">left:<xsl:value-of select="@geburt*3-4432" />px</xsl:variable>
kann ich mir schon vorstellen.
Doch, das funktioniert. Nur muss klar sein, aus welchem Kontext der Attributwert von geburt geholt werden soll.
Kannst Du mir bitte das noch genauer erklaeren (Beispiel ?)
Soll hier noch vorher ein xsl:for-each select.... kommen ?
(Dann ist auch die Variable nicht meht top level ??)
gruesse
josef
Hallo,
Kannst Du mir bitte das noch genauer erklaeren (Beispiel ?)
<xsl:variable name="abc" select="a/b/@c"/>
oder
<xsl:variable name="abc">
<xsl:value-of select="a/b/@c"/>
</xsl:variable>
MfG, Thomas
Danke noch einmal.
Ich antworte hier von einem internetkaffee und muß das erst heute abend zu Hause ausprobieren
<xsl:variable name="abc" select="a/b/@c"/>
oder
<xsl:variable name="abc">
<xsl:value-of select="a/b/@c"/>
</xsl:variable>
Vielleicht ist da noch ein kleiner wesendlichen Unterschied zu meiner Konstruktion, die jedenfalls nicht als globale Variable erkannt wurde.
<xsl:variable name="geburt">left:<xsl:value-of select="@geburt*3-4432" />px</xsl:variable>
Wenn ich bei meiner "Livedemo" bei mann und frau die oben stehende Variable herausnehme und als globale variable setze dann fangen alle linien auf der linken Seite an.
Deine Konstruktion wird sicher funktionieren.
gruesse josef
Schaut schlecht fuer mich aus.
Auf Grund des Beispieles dachte ich mir zu letzt es liegt vielleicht an der Knotenmenge und habe bis:
<xsl:variable name="geburt">left:<xsl:value-of select="/personen/paar/mann/@geburt*3-4432" />px</xsl:variable>
alles durchprobiert.
Ausserdem musste ich feststellen das mein instand-saxon importierte xsl gar nicht verarbeiten kann.
grusse
josef
Hallo,
Ausserdem musste ich feststellen das mein instand-saxon importierte xsl gar nicht verarbeiten kann.
Ich habe das gerade mal mit Instant Saxon 6.5.2 probiert und konnte problemlos <xsl:import href="xyz.xsl"/> verwenden.
MfG, Thomas
Hallo!
Ich habe das gerade mal mit Instant Saxon 6.5.2 probiert und konnte problemlos <xsl:import href="xyz.xsl"/> verwenden.
Danke fuer die neueste Nachricht.
Werde mir die neueste Version herunterladen.
Gibt es bei der globalen Variablen auch noch eine Chance?
gruesse
josef
Hallo,
Gibt es bei der globalen Variablen auch noch eine Chance?
Variablen @ top level sind global und solche in den einzelnen Templates lokal.
MfG, Thomas
Hallo!
Variablen @ top level sind global und solche in den einzelnen Templates lokal.
Danke fuer die Feststellung. Mein Problem ist glaube ich nicht so allgemeiner Natur.
Ich werde vielleicht in ein paar Wochen einen dritten Anlauf versuchen.
gruesse Josef