XML Parsen


Wertauflöser - Kurzfassung

Zweck: Parst ein String oder Inhalts-Objekt in ein XML DOM Objekt, das mit dem Objekt-Feld-Wertauflöser über XPath-Ausdrücke ausgewertet werden kann.

images/download/attachments/201657493/image-2025-2-25_15-2-28-version-1-modificationdate-1740492148571-api-v2.png

Der XML Parsen-Wertauflöser erwartet als Eingabewert eine als Text (String) oder "Inhalt" (Content)-Objekt gegebene XML-Struktur, die in ein DOM-Objekt geparst werden soll.

Für das als Rückgabewert bereitgestellte DOM-Objekt wird im Hinwies der übergreifende Datentyp "XML Element" (org.w3c.dom.Element) angegeben, der auch für alle geparsten XML-Elemente innerhalb eines DOM-Objekts gilt.

Für den Zugriff auf die geparsten Inhalte kann der Objekt-Feld-Wertauflöser genutzt werden, wobei in Verbindung mit dem Datentyp "XML Element" anstelle eines Pfads zu einem Datenfeld ein gültiger XPath-2.0-Ausdruck anzugeben ist.

Beispiele:

Screenshot rechts zeigt ein sehr einfaches Beispiel, für das eine einfache XML-Struktur als statischer Text im Objekt-Wertauflöser einer Ausführen mit-Ereignisaktion eingegeben wurde.

  • Der verkettete XML Parsen-Wertauflöser erzeugt daraus ein DOM-Objekt, das nachfolgend für unterschiedliche Zugriffe genutzt wird.

  • Der verkettete Objekt-Feld-Wertauflöser greift über den XPath-Ausdruck //li[2]] auf das zweite li-Element zu, das beim Durchsuchen des kompletten DOM-Objekts gefunden wird.

    • Sofern ein entsprechendes Element existiert, gilt es als temporäres Bezugsobjekt für den folgenden Aktionsblock.

    • Als Typhinweis erscheint wiederum "XML Element".

  • Der Aktionsblock enthält eine Hinweis anzeigen-Ereignisaktion, die zwei Inhalte aus dem DOM-Objekt wiedergibt:

    • Der Objekt-Feld-Wertauflöser im Titel durchsucht per XPath-Ausdruck //@topic[1] erneut das komplette DOM-Objekt (//) nach einem XML-Attribut topic und gibt genau den Attributwert des ersten Treffers ([1]) zurück.

    • Der Objekt-Feld-Wertauflöser für die Meldung beginnt eine ähnliche Suche relativ zum Bezugsobjekt (.), das komplett nach dem ersten Treffer ([1]) für ein Attribut mit dem Namen SRC durchsucht wird. Der Zugriff auf den Attributwert liefert hier einen Textwert (reddot.bmp)

ANMERKUNG◄ Die in diesem Beispiel zielen auf einen schnellen, einfach nachvollziehbaren "Erfolg" in dem extrem einfachen Setting ab. Die "Komplettsuche" nach Elementen in einer XML-Struktur per // vereinfacht die Ausdrücke formal erheblich, sollte aber nicht als Best Practice missverstanden werden. Der Ansatz ist oft zu unpräzise und kann rechenintensiv sein.

images/download/attachments/201657493/image-2025-2-25_18-56-5-version-1-modificationdate-1740506165586-api-v2.png

Konfiguration

Der XML Parsen-Wertauflöser verwendet keine Parameter.

Für den Lesezugriff auf ein DOM-Objekt über XPath-Ausdrücke im Objekt-Feld-Wertauflöser gelten eine Reihe von Regeln, die anhand der oben verwendeten Beispieldaten erklärt werden sollen.

Beispieldaten, die z. B. (wie oben) im Kopf einer Ausführen mit ein temporäres Bezugsobjekt definieren können.

images/download/attachments/201657493/image-2025-2-26_8-45-45-version-1-modificationdate-1740555945524-api-v2.png

WICHTIG◄ Der Eingabewert für den XML Parsen-Wertauflöser muss ein wohlgeformtes XML-Dokument beschreiben:

  • Die XML-Syntax zur Beschreibung von Elementen, Attributen (usw.) muss exakt eingehalten werden.

  • Die Struktur muss durch genau ein übergeordnetes Element (Top Node) zusammengehalten werden.

images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/warning.svg ACHTUNGimages/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/warning.svg Fehler beim Parsen des Eingabewerts werden als Exception behandelt. Auch das Fehlen eines Eingabewerts gilt als Fehler. Der dadurch ggf. drohende Abbruch mit Rollback kann im Kontext eines Workflows über die Ereignisaktion Try-Catch-Aktion verhindert werden. In Zuordnungskriterien führt ein Fehler beim Parsen dagegen mit Rückgabewert "Nicht bestanden" ($false) abgefangen.

Szenario / Ziel

Konfiguration

Beschreibung

Kein XPath-Ausdruck

images/download/attachments/201657493/image-2025-2-26_8-48-1-version-1-modificationdate-1740556081586-api-v2.png

Ohne XPath-Ausdruck liefert der Objekt-Feld-Wertauflöser das komplette DOM-Objekt.

Der Typhinweis für den Rückgabewert lautet "XML Element". Es ist also genau ein (oder kein) XML-Element als Rückgabewert zu erwarten.

Attributwert lesen

images/download/attachments/201657493/image-2025-2-26_9-29-7-version-1-modificationdate-1740558547093-api-v2.png

Der XPath-Ausdruck @topic durchsucht das als Eingabewert erwarteten "XML Element" nach einem XML-Attribut dessen Name exakt (inkl. Groß-/Kleinschreibung) topic lautet, und gibt dessen Wert zurück.

Da Attribute eindeutig benannt sein müssen, ist genau ein (oder kein) Rückgabewert zu erwarten.

Der Typhinweis für den Rückgabewert lautet String.

Alle Kind-Elemente eines Typs lesen

images/download/attachments/201657493/image-2025-2-26_9-54-57-version-1-modificationdate-1740560097649-api-v2.png

Der XPath-Ausdruck li sucht im als Eingabewert erwarteten "XML Element" (hier: die Top Node ul) nach direkten Kind-Elementen, deren Name exakt (inkl. Groß-/Kleinschreibung) li lautet, und gibt diese als Liste zurück.

Falls keine Elemente mit dem gesuchten Namen existieren, wird eine leere Liste ([]) zurückgegeben.

Der Typhinweis für den Rückgabewert lautet XML Element[].

Ein Kind-Element eines Typs lesen

images/download/attachments/201657493/image-2025-2-26_11-8-41-version-1-modificationdate-1740564520938-api-v2.png

Der XPath-Ausdruck li[1] sucht im als Eingabewert erwarteten "XML Element" (hier: die Top Node ul) nach direkten Kind-Elementen, deren Name exakt (inkl. Groß-/Kleinschreibung) li lautet, und gibt den ersten Treffer zurück.

Anstelle der 1 kann ein abweichender Indexwert (aufsteigend von 1) eingesetzt werden. Falls kein Treffer mit dem adressierten Index existiert, wird "Kein Wert" ($null) zurückgegeben.

Der Typhinweis für den Rückgabewert lautet XML Element.

Ausgewählte Kind-Elemente eines Typs lesen

images/download/attachments/201657493/image-2025-2-26_16-13-21-version-1-modificationdate-1740582801677-api-v2.png

Der XPath-Ausdruck li[img] sucht im als Eingabewert erwarteten "XML Element" (hier: die Top Node ul) nach direkten Kind-Elementen, deren Name exakt (inkl. Groß-/Kleinschreibung) li lautet, und gibt daraus die Teilmenge der li-Elemente zurück, die über mindestens ein Kind-Element mit dem Namen img verfügen. In den Beispieldaten erfüllen alle li-Elemente diese Bedingung.

Der Typhinweis für den Rückgabewert lautet XML Element[].

images/download/attachments/201657493/image-2025-2-26_16-43-59-version-1-modificationdate-1740584639330-api-v2.png

Der XPath-Ausdruck li[img[starts-with(@SRC,"red")]] sucht im als Eingabewert erwarteten "XML Element" (hier: die Top Node ul) nach direkten Kind-Elementen, deren Name exakt (inkl. Groß-/Kleinschreibung) li lautet, und gibt daraus die Teilmenge der li-Elemente zurück, die über mindestens ein Kind-Element mit dem Namen img verfügen, dessen SRC-Attribut einen Textwert enthält, der mit der Zeichenfolge red beginnt.

In den Beispieldaten erfüllt genau ein li-Element diese Anforderung. Es wird als einziger Eintrag in einer Liste zurückgegeben.

Der Typhinweis für den Rückgabewert lautet XML Element[].

Alle Elemente eines Typs suchen und aus jedem einen bestimmten Attributwert lesen

images/download/attachments/201657493/image-2025-2-26_17-15-12-version-1-modificationdate-1740586512422-api-v2.png

Der XPath-Ausdruck //img/@SRC sucht im als Eingabewert erwarteten "XML Element" (hier: die Top Node ul) nach direkt oder indirekt enthaltenen Kind-Elementen, deren Name exakt (inkl. Groß-/Kleinschreibung) img lautet, und gibt je Element den Textwert des SRC-Attributs aus.

img-Elemente, die nicht über ein SRC-Attribut verfügen, werden übersprungen (im Bespiel nicht relevant).

Der Typhinweis für den Rückgabewert lautet String[].

Alle Elemente eines Typs suchen, für die der Wert eines beliebigen Attributs einen Text enthält

images/download/attachments/201657493/image-2025-2-26_17-28-25-version-1-modificationdate-1740587305531-api-v2.png

Der XPath-Ausdruck //img/@SRC sucht im als Eingabewert erwarteten "XML Element" (hier: die Top Node ul) nach direkt oder indirekt enthaltenen Kind-Elementen, deren Name exakt (inkl. Groß-/Kleinschreibung) img lautet und die über mindestens ein Attribut mit einem beliebigen Namen (@*) verfügen, dessen Wert den Text "dot" enthält.

img-Elemente, die über kein Attribut mit der gesuchten Teilzeichenfolge verfügen, werden übersprungen. Im Beispiel werden alle img-Elemente zurückgegeben.

Der Typhinweis für den Rückgabewert lautet XML Element[].

Elemente eines beliebigen Typs suchen, die über ein Attribut verfügen, dessen Name einem Textpattern entspricht

images/download/attachments/201657493/image-2025-2-26_17-42-28-version-1-modificationdate-1740588148049-api-v2.png

Der XPath-Ausdruck //*/@*[ends-with(name(),"c")] durchsucht alle Elemente im als Eingabewert erwarteten "XML Element" (inkl. der Top Node) nach solchen, die über mindestens ein Attribut verfügen, dessen Name (name()) als letztes Zeichen ein "c" enthält.

Im Beispiel trifft dies ausschließlich für die Top Node (ul mit dem topic-Attribut) zu, die als einziger Eintrag einer Liste zurückgegeben wird.

Der Typhinweis für den Rückgabewert lautet XML Element[].

images/download/attachments/201657493/image-2025-2-26_17-46-29-version-1-modificationdate-1740588389662-api-v2.png

Der XPath-Ausdruck //*[@*[ends-with(lower-case(name()),"c")]] durchsucht alle Elemente im als Eingabewert erwarteten "XML Element" "XML Element" (inkl. der Top Node) nach solchen, die über mindestens ein Attribut verfügen, dessen Name (name()) als letztes Zeichen ein "c" oder ein "C" enthält.

Im Beispiel trifft dies für die Top Node (mit dem topic-Attribut) und alle img-Elemente (mit je einem SRC-Attribut) zu, die als Liste zurückgegeben werden.

Dei folgenden Beispiele verwenden Beispieldaten, in denen die XML-Struktur Textknoten enthält.

Text aus einem Element lesen

images/download/attachments/201657493/image-2025-2-26_18-20-42-version-1-modificationdate-1740590442429-api-v2.png

Der XPath-Ausdruck text() durchsucht das als Eingabewert erwartete "XML Element" nach Textknoten und gibt den ersten gefundenen Textwert zurück.

Mit den Beispieldaten wird nur die Zeichenfolge "SEND " (ohne Anführungszeichen) zurückgegeben.

Der Typhinweis für den Rückgabewert lautet String.

images/download/attachments/201657493/image-2025-2-26_18-22-23-version-1-modificationdate-1740590543331-api-v2.png

Der XPath-Ausdruck /a/text() durchsucht das als Eingabewert erwartete "XML Element" nach Textknoten und gibt alle Textwerte zurück, die direkt in der Node (hier: a-Element) enthalten sind.

Mit den Beispieldaten wird eine Liste mit den Zeichenfolgen "SEND " und
" NOW" (ohne Anführungszeichen) zurückgegeben.

Der Typhinweis für den Rückgabewert lautet String[].

images/download/attachments/201657493/image-2025-2-26_18-26-9-version-1-modificationdate-1740590769328-api-v2.png

Der XPath-Ausdruck //text() durchsucht das als Eingabewert erwartete "XML Element" nach Textknoten und gibt alle Textwerte zurück, die direkt oder indirekt in der Top Node (hier: a-Element) enthalten sind.

Mit den Beispieldaten wird eine Liste mit den Zeichenfolgen
"SEND ", "EMAIL", " NOW" (ohne Anführungszeichen) zurückgegeben.

Der Typhinweis für den Rückgabewert lautet String[].