MSSQL xml Query - wie?
Hi,
ich habe beispielhaft folgende SQL Code
Ergebnis: <leer>
Wenn es allerdings so aussieht:
Ergebnis: <TrackingNumber>1Z99R3X96865403082</TrackingNumber>
Da der XML Code nicht von mir generiert wird, sondern UPS Worldship, kann ich diesen nicht verändern und ein UPDATE ... SET ... = REPLACE geht beim Element xml nicht
Was muss ich angeben, dass es mit obigem auch funktioniert und ich die Zeile TrackingNumber als Ergebnis bekomme?
Gruß,
Lars
ich habe beispielhaft folgende SQL Code
declare @myDoc xml
set @myDoc = '<?xml version="1.0" encoding="windows-1252"?>
<OpenShipments xmlns="x-schema:OpenShipments.xdr">
<OpenShipment xmlns="x-schema:Openshipments.xdr" ProcessStatus="Processed">
<ProcessMessage>
<TrackingNumbers>
<TrackingNumber>1Z99R3X96865403082</TrackingNumber>
</TrackingNumbers>
</ProcessMessage>
</OpenShipment>
</OpenShipments>
'
SELECT @myDoc.query('/OpenShipments/OpenShipment/ProcessMessage/TrackingNumbers/TrackingNumber')
Ergebnis: <leer>
Wenn es allerdings so aussieht:
declare @myDoc xml
set @myDoc = '<?xml version="1.0" encoding="windows-1252"?>
<OpenShipments>
<OpenShipment>
<ProcessMessage>
<TrackingNumbers>
<TrackingNumber>1Z99R3X96865403082</TrackingNumber>
</TrackingNumbers>
</ProcessMessage>
</OpenShipment>
</OpenShipments>
'
SELECT @myDoc.query('/OpenShipments/OpenShipment/ProcessMessage/TrackingNumbers/TrackingNumber')
Ergebnis: <TrackingNumber>1Z99R3X96865403082</TrackingNumber>
Da der XML Code nicht von mir generiert wird, sondern UPS Worldship, kann ich diesen nicht verändern und ein UPDATE ... SET ... = REPLACE geht beim Element xml nicht
Was muss ich angeben, dass es mit obigem auch funktioniert und ich die Zeile TrackingNumber als Ergebnis bekomme?
Gruß,
Lars
Please also mark the comments that contributed to the solution of the article
Content-Key: 296936
Url: https://administrator.de/contentid/296936
Printed on: April 23, 2024 at 11:04 o'clock
1 Comment
Dein XML enthält Namespaces und ohne Angabe dieser gibt auch deine xPath Query nichts zurück, logisch.
https://msdn.microsoft.com/de-de/library/ms177400(v=sql.120).aspx
Ein WITH NAMESPACES unter Angabe des URI mit eingefügt, fertig.
fk
https://msdn.microsoft.com/de-de/library/ms177400(v=sql.120).aspx
Ein WITH NAMESPACES unter Angabe des URI mit eingefügt, fertig.
fk