get value from XML()

Prev Next

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.