Mareike: Zählen von Suchergebnissen

Hallo,
ich bekomme eine Suchanfrage in einem XML-File zurück und transformiere diesen per XSL in HTML.
Funktioniert auch alles wunderbar.
Nun möchte ich noch eine zusätzliche Funktion einbauen. Ich möchte mir die Anzahl der gefundenen Dokumente anzeigen lassen.
Im Moment klappt das nur so weit, dass angezeigt wird,

Es wurde(n) 1 2 3 4 5... 122 Dokumente gefunden.

Es wird also jeder Zählschritt mitaufgeschrieben.

Der Code lautet:

<TD>Es wurde(n)
<B>
<xsl:for-each select="KNOTEN1/KNOTEN2">
xsl:evalformatIndex(childNumber(this), "1")</xsl:eval>
</xsl:for-each>
</B> Dokumente gefunden</TD>

Hat jemand eine Idee, wie ich das lösen kann, dass wirklich nur die letzte Zahl ausgegeben wird?
Habe schon sämtliche Hinweise realisiert. Jedoch leider ohne Erfolg.

Vielen Dank.

Grüße Mareike!

  1. Hallo,

    Hat jemand eine Idee, wie ich das lösen kann, dass wirklich nur die letzte Zahl ausgegeben wird?
    Habe schon sämtliche Hinweise realisiert. Jedoch leider ohne Erfolg.

    Suchst Du
    <xsl:value-of select="count(KNOTEN1/KNOTEN2)"/>
    ?

    MfG, Thomas

    1. Hat jemand eine Idee, wie ich das lösen kann, dass wirklich nur die letzte Zahl ausgegeben wird?
      Habe schon sämtliche Hinweise realisiert. Jedoch leider ohne Erfolg.
      Suchst Du
      <xsl:value-of select="count(KNOTEN1/KNOTEN2)"/>
      ?

      Also so funktionierts nicht.
      Bekomme einen Kompilierungsfehler.

      Will die Anzahl der Knoten2 zählen.

      Mareike

      1. Hallo,

        Suchst Du
        <xsl:value-of select="count(KNOTEN1/KNOTEN2)"/>
        ?

        Also so funktionierts nicht.

        Wo hast Du das denn eingebaut?

        Bekomme einen Kompilierungsfehler.

        Was/womit kompilierst Du denn da?

        Will die Anzahl der Knoten2 zählen.

        Mein Konstrukt sollte die Anzal der Kindelemente KNOTEN2 unterhalb von KNOTEN1 zaehlen.

        MfG, Thomas

        1. Suchst Du
          <xsl:value-of select="count(KNOTEN1/KNOTEN2)"/>
          ?
          Also so funktionierts nicht.
          Wo hast Du das denn eingebaut?

          <TD>
          Es wurde(n)
          <B>
          <xsl:value-of select="count(KNOTEN1/KNOTEN2)"/>
          </B> Dokumente gefunden</TD>

          Bekomme einen Kompilierungsfehler.
          Was/womit kompilierst Du denn da?

          Die Transformation wird aus einer ASP Seite per VBS aufgerufen.
          Wenn ich die Suchanfrage ausführe, klappt die Transformation nicht und an dieser Stelle wird ein Fehler ausgewiesen.

          Mein Konstrukt sollte die Anzal der Kindelemente KNOTEN2 unterhalb von KNOTEN1 zaehlen.

          Genau das sollte es sein. Aber es haut nicht hin.

          Mareike

          1. Hallo,

            Mein Konstrukt sollte die Anzal der Kindelemente KNOTEN2 unterhalb von KNOTEN1 zaehlen.

            Genau das sollte es sein. Aber es haut nicht hin.

            Dann stimmt Dein Kontext nicht.

            Zu diesem XML-Dokument

            <?xml version="1.0" encoding="ISO-8859-1"?>
            <?xml-stylesheet href="test.xsl" type="text/xsl"?>

            <wurzel>

            <KNOTEN1>
                <KNOTEN2>a</KNOTEN2>
                <KNOTEN2>b</KNOTEN2>
                <KNOTEN2>c</KNOTEN2>
                <KNOTEN2>d</KNOTEN2>
                <KNOTEN2>e</KNOTEN2>
              </KNOTEN1>

            </wurzel>

            liefert dieses Stylesheet (test.xsl)

            <?xml version="1.0" encoding="ISO-8859-1"?>
            <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
            <xsl:output method="html" encoding="ISO-8859-1"/>

            <xsl:template match="wurzel">

            <html>
            <head>
            <title>Test</title>
            </head>
            <body>
            Anzahl KNOTEN1/KNOTEN2: <xsl:value-of select="count(KNOTEN1/KNOTEN2)"/>
            </body>
            </html>

            </xsl:template>

            </xsl:stylesheet>

            die Ausgabe

            Anzahl KNOTEN1/KNOTEN2: 5

            MfG, Thomas

            1. Dann stimmt Dein Kontext nicht.

              <?xml version="1.0" encoding="ISO-8859-1"?>
              <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

              Ich habe hier

              xmlns:xsl="uri:xsl"

              zu stehen.

              Wenn ich dort

              xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

              einfüge, funktioniert gar nichts mehr.
              Ich bekomme zwar noch eine Ausgabe, aber ohne Werte.

              <xsl:output method="html" encoding="ISO-8859-1"/>

              1. Hallo,

                Wenn ich dort

                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

                einfüge, funktioniert gar nichts mehr.

                1. Arbeitest du zufällig mit dem vosinnflutlichen MSXML 2.x Parser vom Microsoft??
                  (dein xsl:eval läßt auch auf etwas proprietäres schlißen.)

                Grüße
                Thomas

              2. Hallo,

                Ich habe hier

                xmlns:xsl="uri:xsl"

                zu stehen.

                Wenn ich dort

                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

                einfüge, funktioniert gar nichts mehr.
                Ich bekomme zwar noch eine Ausgabe, aber ohne Werte.

                Dann solltest Du es mit XSLT-konformem Code probieren. Den kann sogar der IE mit MSXML3 akurat umsetzen.

                BTW: Etwas mehr eigenen Code zu posten, koennte bei solchen speziellen Problemen nicht schaden.

                MfG, Thomas