get value from XML( a, b, c, d, e )
Gruppe |
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.
Parameterbeschreibung
Parameter |
Beschreibung |
a |
Name des XML-Objekts. Ein solches Objekt erhalten Sie z. B. durch die Funktionen parse XML( a, b, c ) oder convert JSON to XML(a,b). |
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( a, b, c ) 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( a, b, c ) 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.