Zeichenkettenoperatoren

Folgende Operatoren stehen zur Verfügung: concat, subtext, indexof.

Zusammenfügen von Zeichenketten

XML-Tag:

Concat

Operanden:

genau eine Wertemenge (Zeichenketten)

Synopsis:

<concat>

<Wertemenge 1>

</concat>

Operanden:

TEXT

Ergebnis:

Wert (Zeichenkette)

Ergebnistyp:

TEXT

Berechnung (PPM3/PPM4)

Resultat

Ergebnis der Konkatenation aller in der Wertemenge enthaltenen Zeichenketten. NULL, wenn Operand Leermenge

Fehler

Wenn mind. ein Wert von unzulässigem Datentyp

Beispiel:

-

Extraktion von Teilzeichenketten

XML-Tag:

Subtext

Operanden:

genau ein Wert (Zeichenkette)

Synopsis:

<subtext beginindex="..." [endindex=" "]>

<Wert>

</subtext>

Beispiel

<subtext>

<Wert>

<beginindex>...</beginindex>

<endindex>...</endindex>

</subtext>

Verwenden Sie immer nur eine der beiden gezeigten Varianten (Index-Angabe entweder als XML-Attribute oder als XML-Elemente)

Operanden:

TEXT

Ergebnis:

Wert (extrahierte Zeichenkette)

Ergebnistyp:

TEXT

Beschreibung:

Extrahiert aus einer Zeichenkette eine Teilzeichenkette durch Angabe positiver Indizes (vom Stringanfang) bzw. negativer Indizes (vom Stringende)

Berechnung (PPM3)

Resultat

Liefert eine Teilzeichenkette der vom Operanden übergebenen Zeichenkette.
NULL, wenn angegebene Indizes ungültig

Fehler

Wenn Operand NULL oder von unzulässigem Datentyp

Berechnung (PPM4)

Resultat

Liefert eine Teilzeichenkette der vom Operanden übergebenen Zeichenkette.
NULL, wenn angegebene Indizes ungültig oder Operand NULL

Fehler

Bei unzulässigem Datentyp (nicht TEXT)

Beispiel:

<subtext beginindex="-3" endindex="-1">
<filteredattribute name="AT_XYZ"
nodetype="OT_FUNC"/>
</subtext>

Beispiel

<subtext>
<beginindex>-3</beginindex>
<endindex>-1</endindex>
<filteredattribute name="AT_XYZ"
nodetype="OT_FUNC"/>
</subtext>

Bei einem angenommenen Wert ABCDE des Attributs AT_XYZ wird die Teilzeichenkette CD extrahiert.

Position eines Teiltextes in einem anderen Text bestimmen

XML-Tag

<indexof>

Beschreibung

Liefert den Index in einem Text (Operand 1) an dem das erste Vorkommen eines Teiltextes (Operand 2) steht, beginnend an einem angegebenen Index (Operand 3).

Operanden

(Position/

Datentyp)

1 / TEXT

2 / TEXT

[ 3 / LONG ], optional, Standardwert ist 0

Berechnung

ab PPM 9.0

Berechnung

(PPM4)

Resultat

-1, wenn mind. 1 Operand gleich NULL oder der Teilstring nicht gefunden wird

Index des ersten Vorkommen des durch Operand 2 bestimmten Textes im durch Operand 1 bestimmten Text beginnend ab dem in Operand 3 angegebenen Index (äquivalent zu Java String.indexOf(String, int)).

Datentyp

LONG

Exception

Wenn mind. 1 Operand mit falschem Datentyp oder Operand 3 < 0

 

 

 

Beispiel

<subtext mode="PPM4">

<filteredattribute name="AT_TEXT" … />

<beginindex>

<indexof>

<filteredattribute name="AT_TEXT" … />

<constant>

<dataitem>

XYZ

<datatypename="TEXT">Text</datatype>

</dataitem>

</constant>

</beginindex>

</subtext>

 

In dem Beispiel werden die Operatoren indexof und subtext zusammen verwendet. Hier ermittelt indexof die Position des Textes XYZ im Attributwert des Attributs AT_TEXT. Anschließend ermittelt der Operator subtext den Teilstring ab dieser Position.

Wenn das Attribut AT_TEXT den Wert ABCDEXYZAC hat würde obige Berechnungsvorschrift den Wert XYZAC liefern.