logische Bedingung innerhal einer logischen Bedingung B
Peter
- xsl
Hi,
wie muss ich es schreiben, wenn ich eine logische Bedingung innerhalb einer logischen Bedingung schreiben möchte, also knapp formuliert liegt das problem so, geht das so?
<xsl:value-of select="produkt[@genre='klassiker' or (@year='1950' and @author='old')]/>
Kann mir jemand sagen, ob das überhaupt möglich ist und wenn ja welche klammern muss ich setzen. also entweder das eine kriterium stimmt oder aber die anderen beiden stimmen, dann wird der wert angezeigt.
Hi,
wie muss ich es schreiben, wenn ich eine logische Bedingung innerhalb einer logischen Bedingung schreiben möchte, also knapp formuliert liegt das problem so, geht das so?
<xsl:value-of select="produkt[@genre='klassiker' or (@year='1950' and @author='old')]/>
Nö, so geht's nicht, das select-Attribut wird nicht geschlossen.
also entweder das eine kriterium stimmt oder aber die anderen beiden stimmen, dann wird der wert angezeigt.
Du willst wirklich ein exklusives Oder?
Dann wäre der Ausdruck auf jeden Fall falsch, denn der trifft auch dann zu, wenn alle 3 Vergleiche wahr ergeben.
Meines Wissens kennt XPath keinen Operator für XOR, den müßtest Du also nachbauen:
A xor B <---> (A and !B) or (!A and B)
cu,
Andreas
Das geht wirklich nicht?
danke erst einmal fuer die schnelle antwort. Das kann ich mir doch bald gar nicht vorstellen, dass xsl nicht dies interpretieren kann. Dein beispiel habe ich nicht ganz verstanden, ich würde mein problem eher so definieren
entweder A oder (B und C)
bei deinem beispiel muesste ich ja aber auch irgendwie abgrenzen können
<xsl:value-of select="wert[(@A and @B) or (B and A)]"/> ???
Hi,
wie muss ich es schreiben, wenn ich eine logische Bedingung innerhalb einer logischen Bedingung schreiben möchte, also knapp formuliert liegt das problem so, geht das so?
<xsl:value-of select="produkt[@genre='klassiker' or (@year='1950' and @author='old')]/>Nö, so geht's nicht, das select-Attribut wird nicht geschlossen.
also entweder das eine kriterium stimmt oder aber die anderen beiden stimmen, dann wird der wert angezeigt.
Du willst wirklich ein exklusives Oder?
Dann wäre der Ausdruck auf jeden Fall falsch, denn der trifft auch dann zu, wenn alle 3 Vergleiche wahr ergeben.
Meines Wissens kennt XPath keinen Operator für XOR, den müßtest Du also nachbauen:A xor B <---> (A and !B) or (!A and B)
cu,
Andreas
Hi Peter,
Du kennst den Unterschied zwischen „oder“ (or) und „entweder oder“ (xor)?
A B A or B A xor B
1 1 1 0 ← da ist er.
1 0 1 1
0 1 0 1
0 0 0 0
Und bitte kein TOFU.
Live long and prosper,
Gunnar
Korrektur:
A B A or B A xor B
1 1 1 0 ← da ist er.
1 0 1 1
0 1 1 1 ← und da ist keiner.
0 0 0 0
Ich plädiere für die Abschaffung des Nummernblocks auf Tastaturen. Zwischen 0 und 1 gehört ein Sicherheitsabstand. ;-)
Live long and prosper,
Gunnar
Hallo,
wie muss ich es schreiben, wenn ich eine logische Bedingung innerhalb einer logischen Bedingung schreiben möchte, also knapp formuliert liegt das problem so, geht das so?
<xsl:value-of select="produkt[@genre='klassiker' or (@year='1950' and @author='old')]/>
select="produkt[(@genre='klassiker') or (@year='1950' and @author='old')]"
Grüße
Thomas