![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Kerstin, 28. 02. 2006, 16:15
Hallo,
ich habe hier ein Stückchen XSLT-Code:
[1]<xsl:for-each select="contacts/contact">
[2]<xsl:variable name="contactid" select="."/>
[3]<xsl:for-each
select="../../../contact_list/contact[@contact_id='$contactid']">
<row>
<entry align="center"><xsl:value-of select="scope"/></entry>
<entry align="center"><xsl:value-of select="name"/></entry>
<entry align="center"><xsl:value-of select="company"/></entry>
<entry align="center"><xsl:value-of select="phone"/></entry> <entry align="center"><xsl:value-of select="email"/></entry>
</row>
</xsl:for-each> </xsl:for-each>
Ich bin irgendwo im Unterpfad und wähle per for-each [1] alle <contact>-Elemente aus. Deren Inhalt schreibe ich in die [2]Variable "contactid" und möchte diese im nächsten Schritt benutzen, um eine Auswahl [3] aus <contact_list> zu treffen, so dass nur der <contact> ausgewählt wird mit der "contact_id", die in der Variable [2] steht. Allerdings klappt das nicht. Scheinbar ist die Variable aber leer, denn mir wird nix angezeigt.
Jemand eine Idee, wie man sowas anstellt? Habe es auch schon mit param versucht. Das geht aber auch nicht.
Gruß,
Kerstin
Die folgende Nachricht zum Thema stammt von: Thomas Meinike, 28. 02. 2006, 16:30
Hallo,
»» [3]<xsl:for-each
»» select="../../../contact_list/contact[@contact_id='$contactid']">
Der Vergleich soll doch gegen den Wert der Variable $contactid gehen und nicht gegen die Zeichenkette '$contactid'.
MfG, Thomas
Die folgende Nachricht zum Thema stammt von: Kerstin, 01. 03. 2006, 09:44
Hallo,
»» select="../../../contact_list/contact[@contact_id='$contactid']">
»»
»» Der Vergleich soll doch gegen den Wert der Variable $contactid gehen und nicht gegen die Zeichenkette '$contactid'.
Du hast recht, ich danke dir. Ohne die ' funzt es nun wunderbar :-)
Gruß,
Kerstin
Die folgende Nachricht zum Thema stammt von: Kerstin, 01. 03. 2006, 12:19
Hallo,
hab da noch eine Frage zu:
Ich möchte eine Variable innerhalb eines xsl:for-each definieren, deren Wert dann aber außerhalb des xsl:for-each verwenden, ist das möglich?
Hier ein kleines Code-Beispiel:
<xsl:for-each select="version_list/version[@manual_type='1']">
<xsl:sort select="number"/>
<xsl:if test="number='0.1'">
<author>
<surname><xsl:value-of select="author"/></surname>
</author>
</xsl:if>
[1]<xsl:variable name="pubdate">
<xsl:value-of select="date"/>
</xsl:variable>
<xsl:variable name="lastnumber">
<xsl:value-of select="number"/>
</xsl:variable>
</xsl:for-each>
[2]<pubdate><xsl:value-of select="$pubdate"/></pubdate>
<releaseinfo><xsl:value-of select="$lastnumber"/></releaseinfo>
Ich defniere mir also meine Variablen wie unter [1] und möchte diese unter [2] ausgeben. Allerdings klappt das nicht - die Variablen wären "null", sagt mir mein Mozilla FF.
Gibt es eine andere Möglichkeit den höchsten Wert eines Elements zu bestimmen und nur diese auszugeben? Es gibt die Funktion last(), aber die bringt nicht den gewünschten Effekt oder ich wende sie nur falsch an.
Gruß,
Kerstin
Die folgende Nachricht zum Thema stammt von: Thomas J.S., 01. 03. 2006, 14:31
Hallo,
»» hab da noch eine Frage zu:
»» Ich möchte eine Variable innerhalb eines xsl:for-each definieren, deren Wert dann aber außerhalb des xsl:for-each verwenden, ist das möglich?
Nein. Die Sichbarkeit einer Variable beschränkt sich auf ihr Kontext. Definierst du die Variable innerhalb eines for-each, ist sie auch nur innerhalb dieses for-each sichtbar.
»» Gibt es eine andere Möglichkeit den höchsten Wert eines Elements zu bestimmen und nur diese auszugeben? Es gibt die Funktion last(), aber die bringt nicht den gewünschten Effekt oder ich wende sie nur falsch an.
»»
Ja, Z.B. mit einem eigenen for-each, das genau das Gewünschte macht, innerhalb vom <pubdate> und <releaseinfo>.
Grüße
Thomas
© 1998-2006
Impressum, Software: Classic Forum