Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 21-09-2005, 17:22
Benutzerbild von Nezzar Nezzar
 wannabe batard
Links : Onlinestatus : Nezzar ist offline
Registriert seit: Mar 2002
Beiträge: 477
Nezzar ist zur Zeit noch ein unbeschriebenes Blatt
Nezzar eine Nachricht über ICQ schicken
Standard Re: xsl:value-of mit Node "verknüpfen"

Zitat:
Original geschrieben von Heavensdoor
Folgendes: Ich habe folgenden XML Aufbau
Code:
	<config>
		<lang>1</lang>
	</config>
	<mainnav>
		<item id="3" module="_shop" part="cat" state="active">
			<name lang="1">Fische</name>
			<name lang="2">Fishs</name>
		</item>
	</mainnav>
Nun möchte ich über die vielen Punkte aus Mainnav eine for-each laufen lassen, nach dieser Art:

Code:
	<xsl:for-each select="/nav/mainnav/item">
		<xsl:if test="@state = 'active'">
			<a href="{@module}"><xsl:value-of select="name" /></a>
		</xsl:if>
	</xsl:for-each>
Wie kann ich es machen, bzw. kann ich es überhaupt machen, dass nur das Node gewählt wird, wo das Attribut "lang" mit dem Wert aus der Config übereinstimmt oder ist dieser Aufbau der XML Datei unglücklich dafür?

Danke für eure Hilfe!

BTW: Wenn ich in <xsl:if> eine ODER/UND-Verknüpfung machen will, kann ich das dann einfach über && oder ||?
So:
Code:
<!-- Ausgewählte Sprache "zwischenspeichern" -->
<xsl:variable name="lang" select="/nav/config/lang"/>

<xsl:for-each select="/nav/mainnav/item[@state = 'active']">
  <!-- Man beachte den XPath-Ausdruck in @select. Wählt nur den Knoten aus, auf der die richtige Sprache enthält -->
  <a href="{@module}"><xsl:value-of select="name[@lang = $lang]" /></a>
  <!-- Man könnte das $lang auch mit /nav/config/lang ersetzen, finde es aber so sauberer :D -->
</xsl:for-each>
Habe mir gleich mal erlaubt die if-Anweisung zu entfernen und es ist xsl:for-each/@select mit einzubauen (sollte etwas schneller sein und ist meiner Meinung nach besser zu lesen).

Edit: Die und/oder-Verknüpfung findet nicht über &&/|| statt, sondern mit den Schlüsselworten and/or.
__________________
"Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

Geändert von Nezzar (21-09-2005 um 17:26 Uhr)
Mit Zitat antworten