hai ich hab ein Problem
ich hab ne xml datei und ein schema xsd und ne xsl dazu. alle dateien sind wohlgeformt und valide. ich will dass wenn ich die xml im browser oeffne er mir nen namen und das dazugehoerige auto und dessen daten ausgibt. das auto element hat ein attribut, wenn das attribut auch verschrottet steht soll die hintergrundfabre rot werden. also hab ich den code so formuliert:
funktioniert auch alles, wird alles richitg angezeigt. So jetzt hab ich aber auch in dem autoelement ein besitzer element, das ebenfalls ein attribut hat. wenn das attribut auf weiblich gesetzt ist soll die fabre blau werden und ansosnten schwarz
also hab ich das so hingeschrieben
genau vor dem anderen choose statement. meine xml datei sieht so aus
er zeigt aber alle namen in gruen an egal was ich mach. er springt automatisch sofort in die erste ohterwise schleife. es ist so als ob er das attribut mit dem namen weiblich gar nicht wahrnimmt bzw. es falsch liest anstatt weiblich irgendwas anderes. Ich hab alles 1000mal auf case-sensitive und richitge schreibweise geprueft alles gleich. alle dokumente valide und wohlgeformt.
wo ist der fehler? ich arbeite seit 3 tagen dran und komm nicht drauf
ich hab ne xml datei und ein schema xsd und ne xsl dazu. alle dateien sind wohlgeformt und valide. ich will dass wenn ich die xml im browser oeffne er mir nen namen und das dazugehoerige auto und dessen daten ausgibt. das auto element hat ein attribut, wenn das attribut auch verschrottet steht soll die hintergrundfabre rot werden. also hab ich den code so formuliert:
Code:
<xsl:for-each select="//Auto">
<xsl:choose>
<xsl:when test="@status='verschrottet'">
<div style ="font-family:'Helvetica',Times,serif;background-color:red;">
<xsl:value-of select="Bezeichnung"/>
<xsl:call-template name="rest"></xsl:call-template>
</div>
<br/>
</xsl:when>
<xsl:otherwise>
<div style ="font-family:'Helvetica',Times,serif;background-color:yellow;">
<xsl:value-of select="Bezeichnung"/>
<xsl:call-template name="rest"></xsl:call-template>
</div>
<br/>
</xslotherwise>
</xsl:choose>
</xsl:for-each>
funktioniert auch alles, wird alles richitg angezeigt. So jetzt hab ich aber auch in dem autoelement ein besitzer element, das ebenfalls ein attribut hat. wenn das attribut auf weiblich gesetzt ist soll die fabre blau werden und ansosnten schwarz
also hab ich das so hingeschrieben
Code:
<xsl:choose>
<xsl:when test="@Geschlecht='weiblich'">
<div style="font-family:'Helvetica',Times,serif;font-weight:bold;color:blue;">
<xsl:value-of select ="Besitzer"/>
</div>
</xsl:when>
<xsl:otherwise>
<div style="font-family:'Helvetica',Times,serif;font-weight:bold;color:green;">
<xsl:value-of select ="Besitzer"/>
</div>
</xsl:otherwise>
</xsl:choose>
genau vor dem anderen choose statement. meine xml datei sieht so aus
Code:
<Auto status="verschrottet">
<Bezeichnung>
<Marke>Dodge</Marke>
<Typ>Grand Caravan</Typ>
</Bezeichnung>
<Technisches>
<Baujahr>2006</Baujahr>
<Kmstand>77.300</Kmstand>
<Leistung>
<PS>180</PS>
<KW>132</KW>
</Leistung>
</Technisches>
<Farbe>blau</Farbe>
<Besitzer Geschlecht="weiblich">
<Name>Tina</Name>
</Besitzer>
</Auto>
er zeigt aber alle namen in gruen an egal was ich mach. er springt automatisch sofort in die erste ohterwise schleife. es ist so als ob er das attribut mit dem namen weiblich gar nicht wahrnimmt bzw. es falsch liest anstatt weiblich irgendwas anderes. Ich hab alles 1000mal auf case-sensitive und richitge schreibweise geprueft alles gleich. alle dokumente valide und wohlgeformt.
wo ist der fehler? ich arbeite seit 3 tagen dran und komm nicht drauf