ticar
Goto Top

MSSQL xml Query - wie?

Hi,

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 face-sad

Was muss ich angeben, dass es mit obigem auch funktioniert und ich die Zeile TrackingNumber als Ergebnis bekomme?

Gruß,
Lars

Content-ID: 296936

Url: https://administrator.de/contentid/296936

Ausgedruckt am: 24.11.2024 um 08:11 Uhr

126919
126919 21.02.2016 aktualisiert um 12:12:27 Uhr
Goto Top
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