Grundlegende XPath-Ausdrücke

XPath-Ausdrücke werden in Orchestrierungen und Schemadefinitionen für unstrukturierte Dateien verwendet, wenn es erforderlich ist, einen oder mehrere Knoten in einer Nachricht oder Variablen anzugeben, um auf Daten zuzugreifen oder zu ermitteln, ob eine Bedingung erfüllt wurde.

XPath ist ein XML-Standard, der eine Grammatik zur Identifizierung von Knoten (engl. nodes) oder Knotengruppen (engl. node sets) in XML-Dokumenten definiert.

Sie können die Standardwerte für XPath-Ausdrücke bearbeiten, die in den folgenden Fenstern generiert werden:

  • In den Teilfenstern Konfigurieren der Aktivitäten Für jedes und Aktivität 'Aufteilen' wird ein XPath-Ausdruck generiert, um das wiederholt auftretende Element zu definieren. Sie können den Standardwert des XPath-Ausdrucks im Feld Elementname bearbeiten.
  • In den Fenstern Konfigurieren der Aktivitäten Während (While-Schleife) und If..Then wird ein XPath-Ausdruck im Expression Builder generiert, um die Bedingungen zu definieren. Sie können den angezeigten Standardwert des XPath-Ausdrucks bearbeiten, indem Sie auf Erweitert klicken.

XPath 2.0 wird unterstützt.

Knoten über den Pfad auswählen

XPath beschreibt die Position von XML-Elementen und Attributen in Form eines Pfads, der URLs oder Verzeichnissen in Ihrem lokalen Dateisystem ähnlich ist. Jedes Element oder Attribut ist ein Knoten in einer Baumstruktur, die mit dem Stammknoten beginnt. Der Stammknoten enthält die gesamte Baumstruktur, sodass sich jeder Knoten innerhalb der Baumstruktur durch Verfolgen eines Pfads entlang der Verzweigungen auffinden lässt.

Die grundlegende Syntax sieht wie folgt aus:

/stammknoten/untergeordneter-knoten/.../letzter-elementknoten

/stammknoten/untergeordneter-knoten/.../letzter-elementknoten/@attributknoten

Sie bestimmen diesen Pfad gemäß dem XML-Schema, das die Nachrichten beschreibt.

In XPath wird das Symbol @ als Kurzform zur Bezeichnung von Attributen verwendet. Pfade ohne @ oder ohne das Präfix 'attribute::' geben standardmäßig Elemente an. Beispiel:

 /PackingSlip/PONumber/Item

Dieser Pfad identifiziert das Element 'Item' innerhalb des Elements PONumber im Stammknoten PackingSlip.

Knotennamen und XML-Namespaces

Knotennamen können auch mit Namespaces (Namensbereichen) auftreten. Beispiele: tns:OrderNumber oder *:Item. Der Teil des Namens bis zum Doppelpunkt ist ein Präfix, das einen Namespace angibt. Der Doppelpunkt ist das Begrenzungszeichen zwischen dem Namespace und dem lokalen Namen des Knotens.

Namespaces sind ein XML-Standard, der dazu dient, Elemente oder Attribute eindeutig zu identifizieren, wenn Dokumente Inhalte aus verschiedenen Schemata gemeinsam nutzen. Cast Iron Studio ordnet für XML Schemas, die in Konfigurationsdokumenten verwendet werden, automatisch Namespaces zu und verwaltet diese.

Anmerkung: Jedes Schema innerhalb einer WSDL-Definition kann durch einen Namespace definiert werden.

Knoten bedingt durch Prädikate auswählen

Es ist gelegentlich wünschenswert, dass ein Knoten nur ausgewählt werden soll, wenn eine bestimmte Bedingung erfüllt ist. Solche Auswahlbedingungen werden als Prädikate bezeichnet.

Sie können Prädikate in eckigen Klammern definieren. Beispiele:

/PV1/PatientDepartment[text()='Nursery']

Durch diesen Ausdruck wird der Knoten 'PatientDepartment' nur ausgewählt, wenn die Daten im Knoten den Wert 'Nursery' haben.

/Order/OrderDetail/Item[5]

Durch diesen Ausdruck wird der fünfte Knoten 'Item' innerhalb des Elements 'OrderDetail' ausgewählt.

Gültige Operatoren für Bedingungen

XPath-Ausdrücke können auch boolesche Bedingungen sein, die als wahr (true) oder falsch (false) ausgewertet werden. Solche Ausdrücke können zur Auswahl bestimmter Knoten oder lediglich zur Angabe einer zu erfüllenden Bedingung verwendet werden. Sie können den Expression Builder verwenden, der Sie bei der Definition von Bedingungen unterstützt. Die folgenden XPath-Operatoren können in Ausdrücken verwendet werden:

  • = gleich
  • != ungleich
  • < kleiner als
  • > größer als
  • <= kleiner-gleich
  • >= größer-gleich

Funktionen in XPath-Ausdrücken

XPath umfasst auch Funktionen, die eine Bearbeitung von Daten aus Knoten ermöglichen. Dies kann zum Beispiel für Betreffzeilen nützlich sein, die konstanten Text und dynamischen Text aus Nachrichten enthalten. XPath-Funktionen können außerdem zur Verarbeitung von Anforderungen verwendet werden, wie zum Beispiel das Abschneiden von führenden und folgenden Leerzeichen oder das Sicherstellen, dass ein Jobschlüssel den Zeichenfolgedatentyp hat. Die folgenden XPath-Funktionen werden zum Beispiel häufiger verwendet:
concat()
Sie können eine beliebige Anzahl von Zeichenfolgen und die Daten aus Knoten in der von Ihnen angegebenen Reihenfolge der Parameter kombinieren. Sie können XPath-Pfade als Parameter angeben. Konstante Textzeichenfolgen müssen in Anführungszeichen angegeben werden. Beispiel:

concat('New Order # ',/Orders/Order/OrdNumber)

count()
Sie können die Anzahl der Knoten im angegebenen Parameter zählen. In der Regel ist der Parameter ein XPath-Pfadausdruck, der mehrere Knoten angibt, wie zum Beispiel alle Knoten 'Item', die untergeordnete Knoten von 'PODetail' sind. Beispiel:

count(/Orders/Order)

normalize-space()
Schneidet alle führenden und folgenden Leerzeichen vom Eingabeparameterwert ab und normalisiert alle Leerzeichen innerhalb des Eingabewerts auf einzelne Leerzeichen und einzelne Zeilenvorschubzeichen. Beispiel:

normalize-space(/Job/Address/Line1)

number()
Konvertiert den Parameter in einen Nummerndatentyp. Diese Funktion kann verwendet werden, um sicherzustellen, dass Zeichenfolgen als Zahlen behandelt werden. Beispiel:

number(/PurchaseOrder/POTotal)

string()
Konvertiert den Parameter in einen Zeichenfolgedatentyp. Mithilfe dieser Funktion lässt sich sicherstellen, dass numerische Knoten oder Datumsknoten als Zeichenfolgen verarbeitet werden. Beispiel:

string(/PurchaseOrder/VendorID)

translate()
Ersetzt einzelne Zeichen durch andere Zeichen im ersten Parameter, der angegeben wird. Der zweite Parameter gibt das Zeichen bzw. die Zeichen an, die ersetzt werden sollen, und der dritte Parameter gibt die Ersatzzeichen an. Diese Funktion kann zum Beispiel nützlich sein, wenn sicherzustellen ist, dass Jobschlüssel durchgängig in Großbuchstaben geschrieben sind.

translate(/Issue/ShortDescr,

'abcdefghijklmnopqrstuvwxyz',

'ABCDEFGHIJKLMNOPQRSTUVWXYZ')

Eine vollständige Liste der XPath-Funktionen finden Sie in der XPath-Spezifikation (http://www.w3.org/TR/xpath).

XPath-Ausdrücke testen

Mithilfe von XPath Evaluator und XML-Testdaten können Sie Ihre XPath-Ausdrücke testen.