moni: Zeichen in Zeichenkette zählen

Hallo zusammen,

weiss jemand wie man die Anzahl eines bestimmten Zeichens in XSL herausfinden kann?

Mein Problem:

<TEXT>Das ist ein langer Text und der kann
auch Linefeeds enthalten, wie hier
und diese Lienbfeeds muss ich zählen.
Könnt ihr mir
einen Tipp geben wie sich das mit XSL bewerkstelligen
lässt?</TEXT>

Ich muss nun herausfinden wieviele Linefeeds (&#10;) sich im o.g. Text befindet. In dem Falle müsste ich die Zahl 5 erhalten... Eine Idee?

Danke im voraus
moni

  1. Hi,

    weiss jemand wie man die Anzahl eines bestimmten Zeichens in XSL herausfinden kann?
    Ich muss nun herausfinden wieviele Linefeeds (&#10;) sich im o.g. Text befindet.

    AFAIK gibt es da nichts fertiges.

    Ich fürchte, das mußt Du mit contains(), substring-after() und einem rekursiven Template selberbauen müssen.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hi Andreas,

      das hatte ich befürchtet! Na, danke trotzdem, dann mach ich mich ma an die abbeit...

      grüsse
      moni

  2. Hallo,

    weiss jemand wie man die Anzahl eines bestimmten Zeichens in XSL herausfinden kann?

    Mein Problem:

    <TEXT>Das ist ein langer Text und der kann
    auch Linefeeds enthalten, wie hier
    und diese Lienbfeeds muss ich zählen.
    Könnt ihr mir
    einen Tipp geben wie sich das mit XSL bewerkstelligen
    lässt?</TEXT>

    Ich muss nun herausfinden wieviele Linefeeds (&#10;) sich im o.g. Text befindet. In dem Falle müsste ich die Zahl 5 erhalten... Eine Idee?

    Geht nur mit einem recursiven Template:

    <xsl:template match="TEXT">
     <xsl:call-template name="countCR">
         <xsl:with-param name="counter" select="0"/>
      <xsl:with-param name="text" select="."/>
     </xsl:call-template>
    </xsl:template>

    <xsl:template name="countCR">
     <xsl:param name="counter"/>
     <xsl:param name="text" />
     xsl:choose
      <xsl:when test="contains($text, '&#xA;')">
       <xsl:variable name="mbCounter" select="$counter + 1"/>
       <xsl:call-template name="countCR">
        <xsl:with-param name="text" select="substring-after($text, '&#xA;')" />
        <xsl:with-param name="counter" select="$mbCounter" />
       </xsl:call-template>
      </xsl:when>
      xsl:otherwise
       <xsl:value-of select="$counter" />
      </xsl:otherwise>
     </xsl:choose>
    </xsl:template>

    Grüße
    Thomas

    --
    Surftip: kennen Sie schon Pipolino's Clowntheater?
    http://www.clowntheater-pipolino.net/
    1. Danke Thomas, ich versuchs mal! :)

      grüsse
      moni