tokenize-by-length

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Funktionen > Referenz Funktionsbibliothek > core | string functions (String-Funktionen) >

tokenize-by-length

Als Ergebnis wird der Input-String in eine Sequenz von Blöcken/Abschnitten aufgeteilt, die durch den Parameter "delimiter" definiert werden. Anschließend kann das Ergebnis zur Weiterverarbeitung weitergegeben werden.

fn-tokenizebyLeng

Beispiel: Der Input-String ist A,B,C und der "delimiter" (das Trennzeichen) ist "," - das Ergebnis ist A B C.

 

Beispiel

In der Datei tokenizeString2.mfd im Ordner ...\MapForceExamples sehen Sie, wie die tokenize-by-length Funktion verwendet wird.

tok-len01

Die unten gezeigte XML-Quelldatei ist dieselbe wie die im vorhergehenden Beispiel verwendete.

Das Element MissionKit hat ebenfalls zwei Attribute: Edition und ToolCodes aber keinen Inhalt für das Element "MissionKit".

tok-len1

Ziel ist die Generierung einer Liste, in der Sie sehen, welche Altova-Tools jeweils Teil der entsprechenden MissionKit Editions sind.

 

Funktionsweise des Mappings:

 

Die SelectMissionKit input-Komponente erhält ihren Standard-Input von einer Konstantenkomponente, in diesem Fall von "Enterprise XML Developers".
Mit Hilfe der equal-Funktion wird der Input-Wert mit dem Wert von "Edition" verglichen. Das Ergebnis wird an den bool-Parameter des ToolCodes-Filters übergeben.
Der node/row-Input des ToolCodes-Filters stammt aus dem Quelldatei-Datenelement ToolCodes. Der Wert für die Enterprise XML Developers Edition ist: XSMFSVDDSASW.
Der Wert XSMFSVDDSASW wird an den on-true-Parameter übergeben und dann an den input-Parameter der tokenize-by-length Funktion.

 

Funktionsweise und Ergebnis der tokenize-by-length Funktion:

 

Der ToolCodes input-Wert XSMFSVDDSASW wird in mehrere Blöcke bestehend aus je zwei Zeichen aufgeteilt, die durch den length Parameter 2 definiert werden. Das Ergebnis sind 6 Blöcke.
Jeder (in den Parameter b platzierte) Block der equal-Funktion wird mit dem aus 2 Zeichen bestehenden Code-Wert der Quelldatei verglichen (von der es insgesamt 9 Einträg/Datenelemente gibt).
Das Ergebnis des Vergleichs (true/false) wird an den bool-Parameter des Filters übergeben.
Beachten Sie, dass alle Blöcke der tokenize-by-length Funktion an den node/row-Parameter des Filters übergeben werden.

 

Die exist-Funktion überprüft nun die Datei auf existing/non-existing (existierende/nicht existente) Nodes, die vom on-true Parameter der Filter-Komponente an die exist-Funktion übergeben werden.

 

Existierende Nodes sind jene, für die eine Übereinstimmung zwischen dem ToolCodes-Block und dem Codewert besteht.

 

Nicht existente Nodes sind Fälle, in denen es keine Übereinstimmung zwischen einem ToolCodes-Block und einem Codewert gibt.

 

Die bool-Ergebniss der exists-Funktion werden an die if-else Funktion übergeben, die ein y an das Ziel übergibt, wenn der Node vorhanden ist oder ein N, wenn der Node nicht existiert.

 

Ergebnis des Mappings:

tok-len2


© 2019 Altova GmbH