xsl:non-matching-substring
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 6.)
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
Die Instruktion xsl:non-matching-substring dient bei der Verarbeitung einer durch xsl:analyze-string erzeugten Sequenz dazu, diejenigen Substrings eines Eingabestrings zu verarbeiten, die nicht dem verwendeten Vergleichsmuster entsprechen.
Klassifizierung | Sub-Instruktion |
Funktionsgruppe | Testen von Stringwerten |
Einführung | XSLT 2.0 |
Position im Stylesheet und erlaubte Inhalte:
Die Sub-Instruktion xsl:non-matching-substring tritt als zweites Child-Element innerhalb des Templatebodies von xsl:analyze-string auf.
Das Element enthält einen Sequenzkonstruktors zur Verarbeitung des übergebenen Teilstrings der in xsl:analyze-string erzeugten Sequenz. Der Templatekörper darf aus Text, beliebigen Literal Result Elements und XSLT-Instruktionen bestehen.
Attribute:
Es gelten lediglich die Standardattribute. xsl:non-matching-substring besitzt keine elementspezifischen Attribute.
Verwendungszweck:
Die Anweisung xsl:non-matching-substring verarbeitet diejenigen Teilstrings eines Eingabestrings, die bei Anwendung des regulären Ausdrucks von xsl:analyze-string keine Übereinstimmung (match) ergeben. Die Instruktion wird für jeden dieser Teilstrings in der Reihenfolge aufgerufen, die durch ihr Auftreten in der Ausgabesequenz von xsl:analyze-string bestimmt wird. Es darf jeweils maximal eine Sub-Instruktion xsl:non-matching-substring in xsl:analyze-string auftreten, der maximal eine Sub-Instruktion xsl:matching-substring vorangeht sowie xsl:fallback-Elemente in beliebiger Zahl folgen dürfen.
Die Endmarke </xsl:non-matching-substring> muss stets gesetzt werden. Eine abgekürzte Schreibweise ist, auch bei eigentlich leerem Templateinhalt, nicht erlaubt. (In diesem Fall ist es jedoch gestattet, das Element im Inhalt von xsl:analyze-string vollständig wegzulassen.)
Da die lexikalische Form eines nicht passenden Teilstrings in der Regel nicht vorherbestimmbar ist, wird man sich meist darauf beschränken, ihn entweder zu verwerfen (mittels einer leeren oder unterlassenen xsl:non-matching-substring-Instruktion) oder ohne Änderung weiterzureichen.
Beispiel – Anwendung von xsl:non-matching-substring:
Quelldokument:
<?xml version="1.0" encoding="UTF-8"?>
<beispiel>Fischsuppe enthält Fisch.</beispiel>
Stylesheet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/">
<ergebnis>
<xsl:analyze-string select="beispiel" regex="Fisch">
<xsl:matching-substring><em>Karotten</em></xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</ergebnis>
</xsl:template>
</xsl:stylesheet>
Der Matching-Substring wird ausgetauscht und mit <em>-Tags umgeben, der Non-matching-Substring mittels xsl:value-of unverändert durchgereicht.
Ergebnis:
<?xml version="1.0" encoding="UTF-8"?>
<ergebnis>
<em>Karotten</em>suppe enthält <em>Karotten</em>.
</ergebnis>
Elementdefinition:
XSLT 1.0:
Element in XSLT 1.0 nicht verfügbar.
XSLT 2.0:
<!-- Category: sub-instruction -->
<xsl:non-matching-substring>
<!-- keine Attribute -->
<!-- Content: sequence-constructor -->
</xsl:non-matching-substring>
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |
Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Galileo Press, Rheinwerkallee 4, 53227 Bonn