small-step: Überprüfen ob Node existiert

Hallo alle,

ich arbeite mich gerade ein wenig in XSL ein und stehe vor einem kleinen Problem. Ich möchte, abhängig davon ob eine bestimmte Node existiert, Content einbinden. Ich habe es mit xsl:choose versucht und leider nicht das gewünschte Ergebnis erzielt. Ich denke aber, dass es der richtige Ansatz sein müsste, oder? Mein bisheriger Versuch:

xsl:choose
  <xsl:when test="PersonAnalyse/Person[@Alias]=''">
    <xsl:call-template name="RealizationTeam">
      <xsl:with-param name="Title">Analyse</xsl:with-param>
      <xsl:with-param name="Team" select="../TEAM_REALIZATION/Team"/>
      <xsl:with-param name="Date" select="DATE[@Type='AnalyseDate']"/>
    </xsl:call-template>
  </xsl:when>
  xsl:otherwise
    <xsl:call-template name="RolesPerson">
      <xsl:with-param name="PersonType">Analyse</xsl:with-param>
      <xsl:with-param name="Person" select="PersonAnalyse/Person"/>
      <xsl:with-param name="Date" select="DATE[@Type='AnalyseDate']"/>
    </xsl:call-template>          </xsl:otherwise>
</xsl:choose>

Die Node, nach der ich suchen möchte ist folgendermaßen aufgebaut:
<PersonAnalyse>
  <Person id="1687" nodetype="300" name="xxx" Alias="xxx" SurName="xxx" EMail="xxx" Phone="" Fax="" Division="xx" Department="" Group="" LoginName="xxx" />
</PersonAnalyse>

Wenn ich jetzt nach eben dieser Node suche erhalte ich ein für mich unerwartetes Ergebnis. Ist die Node da wird der when-Teil ausgeführt, ist sie es nicht der otherwise-Teil.

Ich denke es liegt an meiner Bedingung, aber ich finde keinen guten Ansatz um weiterzumachen. Kann mir jemand helfen?

Danke und Gruß,
small-step

  1. Hallo,

    Ich denke es liegt an meiner Bedingung, aber ich finde keinen guten Ansatz um weiterzumachen. Kann mir jemand helfen?

    OK, des Rätsels Lösung war für mich count

    <xsl:when test="count(PersonAnalyse)&lt;1">

    Damit ist das Problem behoben.

    Danke und nen schönen Abend!

    small-step

    1. Auch wenn das Problem geloest ist, was wolltest du mit diesem Test erreichen: test="PersonAnalyse/Person[@Alias]=''"  ??

      1. Hallo hh,

        Auch wenn das Problem geloest ist, was wolltest du mit diesem Test erreichen: test="PersonAnalyse/Person[@Alias]=''"  ??

        Gute Frage... Keine Ahnung :-) Ich wollte überprüfen ob ein Alias für die Person gesetzt ist. Wenn nicht kann ja kaum eine Person existieren. Egal, mittlerweile funktioniert es. Ich denke Thomas J.S. hat mit [@Alias = ''] das getroffen was ich eigentlich im Sinn hatte.

        Danke für alle Antworten!

    2. Hallo,

      Ich denke es liegt an meiner Bedingung, aber ich finde keinen guten Ansatz um weiterzumachen. Kann mir jemand helfen?

      OK, des Rätsels Lösung war für mich count

      <xsl:when test="count(PersonAnalyse)&lt;1">

      Es reicht auch ein: <xsl:when test="PersonAnalyse">

      Und du meitest vermutich mit:
      <xsl:when test="PersonAnalyse/Person[@Alias]=''">

      eher ein:
      <xsl:when test="PersonAnalyse/Person[@Alias = '']">

      Grüße
      Thomas