Vergleichen Attribute in XML

Hallo zusammen.Ich versuche mich zur Zeit etwas in XML und stosse dauernd auf neue Hürden, die ich fortlaufend zu überwinden versuche. Meistens klappt das auch, doch beim verlgeichen eines Attributes tue ich mich besonders schwer.

Ich habe in XML eine Reihe verschiedener möglicher Fälle. Jeder Fall hat ein Attribut (dieses habe ich „aktiv“ getauft) welches auf den Wert „Ja“ oder „Nei“ hat.

In meinem XSL möchte ich nun alle Fälle absuchen und wenn das Attribut aktiv auf „Ja“ ist, dann soll es mir einen Wert ausgeben. Wie kriege ich das hin?

bei mir sieht es wie folgt aus:XML: <anweisung>
<nr>1</><fall aktiv=„Ja“>
<ausgabe>Hallo</ausgabe>
</fall>

<fall aktiv=„Nein“>
<ausgabe>Tschüss</ausgabe>
</fall>

<fall aktiv=„Ja“>
<ausgabe>Welt</ausgabe>
</fall>

</anweisung>

XSL:

<xsl:for-each select=„anweisung/fall“>

<xsl:if test=„aktiv = „Ja““>
           <xsl:value-of select=„ausgabe“/>
</xsl:if>

</for-each>

Ich freue mich auf die Hilfe und danke im Voraus
GrussSilverhammerp.s. zur Version die ich Verwende:<xsl:stylesheet xmlns:xsl=„http://www.w3.org/1999/XSL/Transform“ version=„2.0“>

Hallo,

XSL:

<xsl:for-each select=„anweisung/fall“>

<xsl:if test=„aktiv = „Ja““>
           <xsl:value-of select=„ausgabe“/>
</xsl:if>

</for-each>

Attribute werden mit @attributename referenziert. Also müsste es

test="@aktiv = 'Ja'"

lauten. Oder gleich in der Select Einschänkung (da du im Nein Fall ja nichts ausgeben möchtest):

HTH
Heavy

Danke vielmals… genau das brauchte ich :smile:

Jetzt hab ich nur noch ein Problem wegen spaces.

Ich gebe nun nicht nur ein Wert aus wie oben im Beispiel sondern mehrere nacheinander. Im XSL habe ich dann in der Zeile nach dem if folgendes:

wobei die 4 Wörter (hallo, was, wie, geht" tags aus dem XML sind. Zwischen den Wörter sollen Leerzeichen sein. Normalerweise liesse sich das ja mit   zwischen allen value-of bewerkstelligen. Wenn jetzt aber in einem Fall ein tag im XML keinen Inhalt hat, dann würden plötzlich 2 Leerzeichen nacheinander stehen. Kann ich das irgendwie vermeiden oder umgehen?

Herzlichen Dank für die Hilfe

Hallo,

wobei die 4 Wörter (hallo, was, wie, geht" tags aus dem XML
sind. Zwischen den Wörter sollen Leerzeichen sein.
Normalerweise liesse sich das ja mit � zwischen allen value-of
bewerkstelligen. Wenn jetzt aber in einem Fall ein tag im XML
keinen Inhalt hat, dann würden plötzlich 2 Leerzeichen
nacheinander stehen. Kann ich das irgendwie vermeiden oder
umgehen?

du könntest prüfen, ob das Tag einen Inhalt hat indem du z.B. die Länge des Strings ermittelst:

&#160;

Gruß
Heavy