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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 296936
Url: https://administrator.de/contentid/296936
Ausgedruckt am: 24.11.2024 um 08:11 Uhr
1 Kommentar
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