|
<< Click to Display Table of Contents >> Navigation: Komponenten > Kommunikation > Multi-IO-IP > Filter > XML Filter |
XML Filter (Nur auf Zeichenketten)
Der XML Filter erwartet ein XML Dokument, beispielsweise als Antwort auf einen XML Webservice. Folgend werden die einzelnen Felder des Datenfilter Editors erläutert.
Der Filterausdruck ist im folgenden beispielhaft zu sehen. Hier muss lediglich der XPath Ausdruck eingegeben werden (siehe dazu Beispiele am Ende dieses Kapitels). Die Syntax der Pfadangabe entspricht der XML Path Language (XPath). XPath ist eine vom W3-Konsortium entwickelte Anfragesprache, um Teile eines XML-Dokumentes zu adressieren. Der adressierte Knoten muss ein Blatt sein, also kein Elementtyp und muss einen konvertierbaren Text als Wert besitzen. Ein Pfad zu einem „Endknoten“ wird in XPath über die einzelnen Tag Namen angegeben, die durch einen „/“ voneinander getrennt sind. Will man Tags mit Attributen und konkreten Attribut-Werten ansprechen, so werden diese nach einem Tag Namen in eckigen Klammern angegeben. Am Ende dieses Kapitels sind noch einige Beispiele aufgeführt, die die Verwendung XPath erläutern.
Beispiel
Xml Dokument:
<?xml version="1.0" encoding="utf-8"?>
<dok>
<!-- ein XML-Dokument -->
<tag1>test text</tag1>
<kap title="Nettes Dokument">
<pa>Ein Absatz</pa>
<pa>Noch ein Absatz</pa>
<pa>Und noch ein Absatz</pa>
<pa>Nett, oder?</pa>
</kap>
<kap title="Zweites Kapitel">
<pa>3</pa>
</kap>
<kap title="Zweites Kapitel">
<pa>3</pa>
</kap>
<tag2 attr1=“attr value“ attr2=“attr2 value“>
<value>Example value</value>
</tag2>
</dok>
XPath Pfad Beispiel 1
/dok/tag1
Dieser XPath String extrahiert den Wert „test text“ aus dem XML Dokument.
XPath Pfad Beispiel 2
/dok/kap[@kap=“Zweites Kapitel“]/pa
Dieser XPath String extrahiert den Wert 3 aus dem XML Dokument. Besitzt ein Tag mehrere mehrere Attribute so können diese im XPath String mittels dem Identifier „and“ ebenfalls angegeben werden:
/dok/tag2[@attr1=“attr valuel“ and attr2=„attr2 value“]/value
Liefert den Text „Example value“.
Für detailliertere Information nutzen sehen Sie bitte eine Dokumentation zu XPath ein. Über den folgenden Link finden sie ein recht kompaktes und ausreichendes Tutorial zu XPath:
XPath Pfad Beispiel 3 (Attribut-Werte ermitteln)
Um aus dem obigen Beispiel von <tag2> den Wert des Attributs „attr1“ auszulesen, gilt foldender XPath Ausdruck:
Ausdruck: /dok/tag2/@attr1
Return Wert: „attr value“
XPath Pfad Beispiel 4
Enthält ein Dokument mehrere Knoten mit demselben Tagnamen, so kann anhand eines Indizes der richtige ermittelt werden. Im obigen Beispiel existieren mehrere Knoten mit dem Tagnamen kap.
Der folgende Ausdruck liefert den Wert des Attributs title des 3. Knotens vom Beginn des Dokuments aus gesehen, der den Tagnamen kap trägt
Ausdruck: /dok/kap[3]/@attr1
Return Wert: „Drittes Kapitel“