Wie prüfe ich ob ein Attribut existiert ?
devent
- xsl
0 Thomas J.S.0 devent0 MudGuard0 Thomas J.S.0 devent
Hallo
wenn ich als xml datei z.b. sowas habe:
<titel>
<text style="bold">
Fetter Text
</text>
<text style="normal">
Normaler Text
</text>
</titel>
Kann ich ja mit @bold auf die attribute zugreifen.
Es funktioniert sowas <xsl:if test="@style = 'bold'">
oder <xsl:if test="@style != ''">
wie kann ich aber prüfen ob das style überhaupt gesetzt wurde ?
also bei z.b.
<titel>
<text style="bold">
Fetter Text
</text>
<text>
Normaler Text
</text>
</titel>
wurde beim zweiten text-tag das attribut style überhaupt nicht gesetzt, wie kann ich das überprüfen?
mit <xsl:if test="@style=''"> gehts irgendwie nicht, also
pls help ....
thx :)
Hallo,
Kann ich ja mit @bold auf die attribute zugreifen.
Es funktioniert sowas <xsl:if test="@style = 'bold'">
oder <xsl:if test="@style != ''">
<xsl:if test="@style">
Grüße
Thomas
hm und wieso funkt das net:
xsl:choose
<xsl:when test="@url">
<xsl:value-of select="titel"/>
</xsl:when>
<xsl:when test="@url!=''">
<a>
<xsl:attribute name="href">
<xsl:value-of select="@url"/>
</xsl:attribute>
<xsl:value-of select="titel"/>
</a>
</xsl:when>
</xsl:choose>
also ich will falls ein attribut url da ist ein link aufmachen
und falls kein attribut url da ist kein link aufmachen
z.b.
<text url="http://......">
Ein Text mit Link
</text>
<text>
ein text ohne link
</text>
Hi,
hm und wieso funkt das net:
Es funktioniert, aber nicht so, wie Du Dir das vorstellst.
xsl:choose
<xsl:when test="@url">
Hier sind alle Fälle berücksichtigt, bei denen das url-Attribut existiert.
<xsl:value-of select="titel"/>
</xsl:when>
<xsl:when test="@url!=''">
Also wird dieser Fall NIE berücksichtigt - bei xsl:choose wird immer nur der erste Zweig, dessen Bedingung zutrifft, ausgewertet.
Du willst eher sowas
xsl:choose
<xsl:when test="@url and (@url!='')">
link ausgeben
</xsl:when>
xsl:otherwise
text ausgeben
</xsl:otherwise>
</xsl:choose>
cu,
Andreas
Hallo,
hm und wieso funkt das net:
xsl:choose
<xsl:when test="@url">
<xsl:value-of select="titel"/>
</xsl:when>
Weil in diesem Fall du immer nur überprüfst ob das Attribut url vorhanden ist, und das ist sie auch dann wenn sie vorhanden ist, also trifft dieser Regel zu und der "titel" wird geschrieben. Der zweite Regel kommt also nicht mehr zum Einsatz.
xsl:choose
<xsl:when test="not(@url) or (@url = '')">
<!-- wenn @url NICHT vorhanden, oder vorhanden aber leer ist -->
<xsl:value-of select="titel"/>
</xsl:when>
xsl:otherwise
<!-- wenn @url vorhanden und nicht leer ist -->
<a href="{@url}">
<xsl:value-of select="titel"/>
</a>
</xsl:otherwise>
</xsl:choose>
Grüße
Thomas
aahh jaa
danke :)