XSLT Elemente

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

 

 

xsl:analyze-string

untersucht einen Eingabestring, der im Attribut select ausgewählt wurde, anhand eines regulären Ausdruckes. Dieser wird im Attribut regex angegeben.

Der Eingabestring wird in Teilstrings zerlegt. Für jeden Teilstring, der auf den regulären Ausdruck zutrifft, wird die als Kindelement angegebene Sub-Instruktion xsl:matching-substring ausgeführt und an Stelle des Teilstrings ausgegeben. An Stelle aller nicht treffenden Teilstrings wird die Sub-Instruktion xsl:non-matching-substring ausgegeben.

So können beispielsweise bestimmte Wörter ersetzt werden, die mit dem regulären Ausdruck bestimmt werden und die Ersatzwörter mit der xsl:matching-substring-Instruktion ausgegeben werden. Die Instruktion xsl:non-matching-substring müsste in diesem Fall alle nicht-treffenden Teilstrings unverändert ausgeben.

Der reguläre Ausdruck muss nicht unbedingt nur aus Vergleichsstring bestehen. Es können wesentlich kompliziertere Vergleichsbedingungen angegeben werden. Beispielsweise können mehrere Teilstrings angegeben werden die durch den Ersatzstring ersetzt werden sollen: "(Teilstring1|Teilstring2)". Zusätzlich gibt es Schlüsselzeichen, die die Variationsmöglichkeit erhöht:

Der Punkt (.) steht für jedes beliebige Zeichen, folgt nach einem Zeichen das Fragezeichen (?) gilt der Ausdruck mit und ohne diesem Zeichen. Ein Zeichen mit dem Pluszeichen (+) folgend wird einfach und mehrfach erkannt, mit Stern (*) folgend ohne, einfach und mehrfach gewertet.

Μit dem Attribut flags kann das Vergleichsverhalten mit unterschiedlichen Modi reguliert werden. Die sogenannte Flagsymbole geben beispielsweise an, dass die Groß- und Kleinschreibung ignoriert wird ('i'), die Zeilenumbrüche beachtet werden ('m'), den "dot-all" modus anschalten ('s') oder der Weißraum innerhalb des regulären Ausdruckes berücksichtigt wird ('x').

Attribute

select, regex, flags

Beispiel

<?xml version="1.0"encoding="UTF-8"?>
<root>
    <section>
        <para>
           Die [b]Extensible Markup Language[/b] (engl. für „[i]erweiterbare 
           Auszeichnungssprache[/i]“), abgekürzt xml, ist eine Auszeichnungssprache 
           zur Darstellung hierarchisch strukturierter Daten in Form von Textdateien. 
           xml wird u. a. für den Austausch von Daten zwischen Computersystemen 
           eingesetzt, speziell über das Internet.
        </para>
    </section>
</root>
<?xml version="1.0"encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  <xsl:output method="xhtml"/>
  <xsl:template match="section">
    <section>
      <para>
        <xsl:analyze-string select="para" 
          regex="\[(.*?)\](.*?)\[/(.*?)\]" flags="s">
          <xsl:matching-substring>
            <xsl:element name="{regex-group(1)}">
              <xsl:value-of select="regex-group(2)"/>
            </xsl:element>
          </xsl:matching-substring>
          <xsl:non-matching-substring>
            <xsl:value-of select="."/>
          </xsl:non-matching-substring>
        </xsl:analyze-string>
      </para>
    </section>
  </xsl:template>
</xsl:stylesheet>
 
<?xml version="1.0"encoding="UTF-8"?>
<section>
   <para>
     Die <b>Extensible Markup Language</b> (engl. für „<i>erweiterbare 
     Auszeichnungssprache</i>“), abgekürzt XSL, ist eine Auszeichnungssprache 
     zur Darstellung hierarchisch strukturierter Daten in Form von Textdateien. 
     XSL wird u. a. für den Austausch von Daten zwischen Computersystemen 
     eingesetzt, speziell über das Internet.
   </para>
</section>

> nach oben
> zurück zur alphabetischen Liste der XSLT Elemente