Liefert den ersten Ergbenis-Wert des XPath-Ausdrucks b auf das XML-Objekt a zurück. Optional kann zusammenhängend ein XPath-Ausdruck aus den Werten b und c erstellt werden. Weiter können optional mit Hilfe einer Map, welche im Parameter d angegeben wird, Namespaces definiert werden. Bestehende Namespaces werden bei gleichem Namen ersetzt. Wird ein Listenname e angegeben, werden alle Werte, die der XPath liefert, in die Liste geschrieben, zurückgegeben wird weiterhin der erste Wert des XPath-Queries. Vorher in der Liste befindliche Werte werden nicht gelöscht. Die Nutzung des Defaultlistennamens bei leeren Listennamen wird nicht unterstützt.
Parameter
Parameter | Beschreibung |
|---|---|
a | Name des XML-Objekts. Ein solches Objekt erhalten Sie z. B. durch die Funktionen parse XML() oder convert JSON to XML(). |
b | XPath-Ausdruck (Selektion einer bestimmte Knotenmenge). |
c | (optional) XPath-Ausdruck. |
d | (optional) Name der Map für Namespaceverwaltung. |
e | (optional) Name der Liste für das Ablegen aller Ergebnisse. Default: leer. |
Beispiel 1
Gegeben ist die folgende XML-Datei, die wir zuerst unter dem Namen xml_Rechnung mit der Funktion parse XML() einlesen. Danach können wir diesen Namen in Parameter a dieser Funktion hier verwenden.
<Rechnung>
<Rechnungsnummer>INV_12345</Rechnungsnummer>
<Rechnungsdatum>2014-05-21T15:25:11Z</Rechnungsdatum>
<Benutzer>
<Kundennummer>12345</Kundennummer>
<Vorname>Gustav</Vorname>
<Nachname>Thalmeier</Nachname>
<Ort>Treuchtlingen</Ort>
<Geburtstag>15.07.1981</Geburtstag>
<Bestellung>
<Artikelnummer id="123689">DE459363258</Artikelnummer>
<Menge>1</Menge>
<Preis>17,98</Preis>
</Bestellung>
<Bestellung>
<Artikelnummer id="5896324">459363298</Artikelnummer>
<Menge>1</Menge>
<Preis>4,99</Preis>
</Bestellung>
</Benutzer>
<Benutzer>
<Kundennummer>85639</Kundennummer>
<Vorname>Henriette</Vorname>
<Nachname>Michlmeier</Nachname>
<Ort>Breckerfeld</Ort>
<Geburtstag>04.12.1975</Geburtstag>
<Bestellung>
<Artikelnummer id="9832475">DE459362358</Artikelnummer>
<Menge>1</Menge>
<Preis>199,59</Preis>
</Bestellung>
<Bestellung>
<Artikelnummer id="123659">459363258</Artikelnummer>
<Menge>3</Menge>
<Preis>7,99</Preis>
</Bestellung>
<Bestellung>
<Artikelnummer id="123689">DE459363258</Artikelnummer>
<Menge>1</Menge>
<Preis>14,99</Preis>
</Bestellung>
</Benutzer>
</Rechnung>Sofern eine Liste als Parameter e angegeben wird, wird diese als leer angenommen.
Parameter a | Parameter b | Parameter c | Parameter d | Parameter e | Ergebnis | Elemente der Liste |
|---|---|---|---|---|---|---|
xml_Rechnung | /NonExist | |||||
xml_Rechnung | /Rechnung[1]/Rechnungsdatum | 2014-05-21T15:25:11Z | ||||
xml_Rechnung | /Rechnungsnummer | /Rechnung[1] | INV_12345 | |||
xml_Rechnung | /Rechnung[1]/Benutzer[1]/Kundennummer | 12345 | 12345 | |||
xml_Rechnung | /Rechnung[1]/Benutzer[2]/Kundennummer | 85639 | ||||
xml_Rechnung | //Kundennummer | 12345 | ||||
xml_Rechnung | //Kundennummer | custList | 12345 | 12345, 85639 |
Beispiel 2
Gegeben ist die folgende XML-Datei, die wir zuerst unter dem Namen xml_ConversionRate mit der Funktion parse XML() einlesen. Danach können wir diesen Namen in Parameter a dieser Funktion hier verwenden.
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:conversionrate="http://www.example.com">
<soap:Body>
<ConversionRateResponse xmlns="http://www.webserviceX.NET/">
<ConversionRateResult>309.09</ConversionRateResult>
<ConversionRateResult>22.15</ConversionRateResult>
<conversionrate:Date>2017-04-03</conversionrate:Date>
</ConversionRateResponse>
</soap:Body>
</soap:Envelope>Hinweis: Um hier auf den Wert des Tags ConversionRateResult zugreifen zu können, muss eine Map mit dem Namespace dw_dflt=http://www.webserviceX.NET/ definiert werden. Im XPath-Ausdruck muss der entsprechende Präfix verwendet werden, damit Ergebnisse gefunden werden.
Die Map kann ansonsten verwendet werden, um umständliche Namespaces zu verkürzen.
Für die Beispiele sei folgende Map gegeben:
dw_dflt=http://www.webserviceX.NET/
cr=http://www.example.com
s=http://www.w3.org/2003/05/soap-envelope
Parameter a | xml_ConversionRate |
Parameter b | /NonExist |
Parameter c | |
Parameter d | |
Parameter e | |
Ergebnis | |
Elemente der Liste |
Parameter a | xml_ConversionRate |
Parameter b | /Envelope[1]/Body[1]/ConversionRateResponse[1]/ConversionRateResult |
Parameter c | |
Parameter d | |
Parameter e | |
Ergebnis | Leer (siehe Hinweis oben) |
Elemente der Liste |
Parameter a | xml_ConversionRate |
Parameter b | /soap:Envelope[1]/soap:Body[1]/ConversionRateResponse[1]/ConversionRateResult |
Parameter c | |
Parameter d | |
Parameter e | |
Ergebnis | Leer (siehe Hinweis oben) |
Elemente der Liste |
Parameter a | xml_ConversionRate |
Parameter b | /soap:Envelope[1]/soap:Body[1]/dw_dflt:ConversionRateResponse[1]/dw_dflt:ConversionRateResult[1] |
Parameter c | |
Parameter d | map_namespaces |
Parameter e | |
Ergebnis | 309.09 |
Elemente der Liste |
Parameter a | xml_ConversionRate |
Parameter b | //dw_dflt:ConversionRateResult |
Parameter c | |
Parameter d | map_namespaces |
Parameter e | |
Ergebnis | 309.09 |
Elemente der Liste |
Parameter a | xml_ConversionRate |
Parameter b | /dw_dflt:ConversionRateResponse[1]/dw_dflt:ConversionRateResult |
Parameter c | /soap:Envelope[1]/soap:Body[1] |
Parameter d | map_namespaces |
Parameter e | list_ConversionRate |
Ergebnis | 309.09 |
Elemente der Liste | 309.09,22.15 |
Parameter a | xml_ConversionRate |
Parameter b | /soap:Envelope[1]/soap:Body[1]/dw_dflt:ConversionRateResponse[1]/conversionrate:Date[1] |
Parameter c | |
Parameter d | |
Parameter e | |
Ergebnis | 2017-04-03 |
Elemente der Liste |
Parameter a | xml_ConversionRate |
Parameter b | /s:Envelope[1]/s:Body[1]/dw_dflt:ConversionRateResponse[1]/cr:Date |
Parameter c | |
Parameter d | map_namespaces |
Parameter e | |
Ergebnis | 2017-04-03 |
Elemente der Liste |
Bitte beachten, dass bei XML-Dateien mit Namespaces unbedingt im Xpath-Ausdruck auch der Namespace mit angegeben werden muss.