John Barden: Prüfen, ob Attribut leer/nicht vorhanden ist

Hallo,

wenn ich prüfen will, ob ein XML-Element leer oder nicht vorhanden ist, dann mache ich das normalerweise so:
<xsl:if test="test/abc/node()">
Wenn das Element <test><abc> etwas enthält, dann wird der Code in der if-Schleife ausgeführt. Wenn das Element leer oder nicht vorhnaden ist, dann wird der Code übersprungen.

Jetzt habe ich festegestellt, dass das mit Attributen nicht funktioniert:
<xsl:if test="test/parameter/@par1/node()">
Hier wird nie festgestellt, ob der Parameter <test><parameter par1="test1"/> etwas enthält, oder nicht.

Gibt es dafür eine andere Lösung?

Danke für eure Hilfe,

Grüße
John

  1. Hallo,

    Jetzt habe ich festegestellt, dass das mit Attributen nicht funktioniert:
    <xsl:if test="test/parameter/@par1/node()">
    Hier wird nie festgestellt, ob der Parameter <test><parameter par1="test1"/> etwas enthält, oder nicht.

    Gibt es dafür eine andere Lösung?

    <xsl:if test="string-length(test/parameter/@par1) > 0">

    MfG, Thomas

  2. Hallo,

    Jetzt habe ich festegestellt, dass das mit Attributen nicht funktioniert:
    <xsl:if test="test/parameter/@par1/node()">
    Hier wird nie festgestellt, ob der Parameter <test><parameter par1="test1"/> etwas enthält, oder nicht.

    Gibt es dafür eine andere Lösung?

    Andere Lösung (wie von Thomas):
    <xsl:if test="test/parameter[@par1 != '']">

    Grüße
    Thomas

  3. Ah, jetzt funktioniert es.

    Vielen Dank euch beiden *g*

    Grüße
    John