Thomas: Referenzierungsproblem

Hallo zusammen,

ich versuche folgenden Ausdruck zuprüfen:

<xsl:if test="count(../../Referenzen/Referenz[@id1 = $ID
]/Ref.Gruppe = Gruppe) != 0">

Dabei erhalte ich aber immer nur die Fehlermeldung "Der Ausdruck gibt keinen DOM-Knoten zurück".

Was mache ich hier falsch?

Vielen Dank für Euer Hilfe.

Gruß
Thomas

  1. Hallo Thomas,

    <xsl:if test="count(../../Referenzen/Referenz[@id1 = $ID
    ]/Ref.Gruppe = Gruppe) != 0">

    Prüfe mal auf die Elementinhalte mit .../Ref.Gruppe/text() = Gruppe/text(). Zeige ansonsten mal ein Stück des zu verarbeitenden XML-Dokuments.

    Grüße,
    Thomas

    1. Hallo Thomas,

      also, wenn ich nur
      ../../Referenzen/Referenz[@id1 = $ID]/Ref.Gruppe = Gruppe
      angebe, klappt alles wunderbar, erst wenn ich den count()-Befehl drumrumbastle, kommt diese Fehlermeldung. - Ist denn die Syntax auch so korrekt? Kann man das so schreiben?

      Hast Du vielleich noch eine Idee?

      Gruß
      Thomas

      1. Hallo,

        also, wenn ich nur
        ../../Referenzen/Referenz[@id1 = $ID]/Ref.Gruppe = Gruppe
        angebe, klappt alles wunderbar, erst wenn ich den count()-Befehl drumrumbastle, kommt diese Fehlermeldung. - Ist denn die Syntax auch so korrekt? Kann man das so schreiben?

        Nein.
        <xsl:if test="count(../../Referenzen/Referenz[@id1 = $ID
        ]/Ref.Gruppe = Gruppe) != 0">

        Das "=" stört im count.
        <xsl:if test="count(../../Referenzen/Referenz[@id1 = $ID
        ]/Ref.Gruppe[. = Gruppe]) != 0">

        oder:
        <xsl:if test="count(../../Referenzen/Referenz[@id1 = $ID
        ]/Ref.Gruppe[text() = Gruppe]) != 0">

        Grüße
        Thomas - der andere

        1. Hallo,

          <xsl:if test="count(../../Referenzen/Referenz[@id1 = $ID]/Ref.Gruppe[. = Gruppe]) != 0">

          oder:
          <xsl:if test="count(../../Referenzen/Referenz[@id1 = $ID]/Ref.Gruppe[text() = Gruppe]) != 0">

          beide Varianten habe ich nun ausprobiert, führen allerdings zu keinem Ergebnis. Es kommt nun zwar keine Fehlermeldung mehr, aber das count-Ergebnis ist immer nur 0.

          Wie gesagt, <xsl:if test="../../Referenzen/Referenz[@id1 = $ID]/Ref.Gruppe = Gruppe"> klappt, nur mit count() eben nicht.

          Noch eine Idee?

          Gruß
          Thomas

          1. Hallo,

            Wie gesagt, <xsl:if test="../../Referenzen/Referenz[@id1 = $ID]/Ref.Gruppe = Gruppe"> klappt, nur mit count() eben nicht.

            Noch eine Idee?

            »not(count( .... ) = 0)«  o. »count(...) > 0«

            Was liefert so das if?
            Wie siht der weitere Kontext im XSLT aus?

            Grüße
            Thomas