我一直試圖在我的示例XML中匯入欄位GivenName,但由于某些原因,它無法作業,我一直在使用以下SQL查詢,我認為我使用了正確的欄位和正確的節點,但我不是100%確定XMLNameSpaces
。非常感謝您的幫助
。這是我使用的SQL查詢的例子:
這是我使用的SQL查詢的例子。
DECLARE @xml XML = (SELECT [Xml] FROM ExampleTable)
WITH XMLNAMESPACES (DEFAULT 'http://www.opentravel.org/OTA/2003/05'/span>,'http://www.w3.org/2003/05/soap-envelope'/span> )
select FirstName = ProfileInfo. value('Profiles[1]/ProfileInfo[1]/Profile[1]/Customer[1]/PersonName[1]/@GivenName', 'nvarchar(255)')
FROM @xml.nodes('Envelope/Body/OTA_Example/Infos/ResUser') as T1( Profiles)
outer apply T1.Profiles.nodes('ResUser2') asT2(ProfileInfo)
這是我用來匯入的XML例子:
這是我用來匯入的XML例子。
<Envelope xmlns="http://www.w3.org/2003/05/soap-envelope">
<soap2:Header xmlns:htng="http://htng. org/1.3/Header/" xmlns:wsa="http://www.w3.org/2005/08/addressing"/span>。
xmlns:wss="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"。
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"。
xmlns:xsd="http://www.w3.org/2001/XMLSchema"/span> xmlns:htnga="http://htng.org/PWSWG/2007/02/AsyncHeaders"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" >。
xmlns:soap2="http://www.w3.org/2003/05/soap-envelope">
<wsa:Action>例子</wsa:Action>
<wsa:ReplyTo>/span>
<wsa:Address>Example2</wsa:Address>
</wsa:ReplyTo>/span>
<htnga:ReplyTo>/span>
<wsa:Address>Example3</wsa:Address>
</htnga:ReplyTo>/span>
<wsa:MessageID>123</wsa:MessageID>
</soap2:Header>/span>
<Body>/span>
<OTA_Example xmlns:xsd="http://www. w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"。
xmlns="http://www.opentravel.org/OTA/2003/05" Version="5.000" >
<Info>/span>
<Infos CreateDateTime="2021-09-20T06。 52:40" CreatorID="User">
< UniqueID Type="1" ID="12341251" />
<ResUser>
< ResUser2 ResGuestRPH="1" PrimaryIndicator="true">
<Profiles>/span>
<ProfileInfo>/span>
<Profile ProfileType="1">
<Customer>/span>
<PersonName>/span>
<NamePrefix>Mr.</NamePrefix>
<GivenName>FirstnameTest</GivenName>
<Surname>/span>LastnameTest</Surname>/span>
</PersonName>/span>
</Customer>/span>
</Profile>/span>
</ProfileInfo>/span>
</Profiles>/span>
</ResUser2>/span>
</ResUser>/span>
</Infos>/span>
</Infos>>
</OTA_Example>/span>
</Body>/span>
</Envelope>
uj5u.com熱心網友回復:
GivenName不是一個屬性,所以你不應該對它使用@。
不清楚你為什么需要.nodes,只有當有多個節點需要分成獨立的行時才需要
你也可以直接從ExampleTable中選擇,你不需要把它存盤在一個變數中。
;WITH XMLNAMESPACES (
'http://www.w3.org/2003/05/soap-envelope' AS soap,
DEFAULT 'http://www.opentravel.org/OTA/2003/05')
select FirstName = [XML]. value('(soap:Envelope/soap:Body/OTA_Example/Info/Infos/ResUser/ResUser2/Profiles/ProfileInfo/Profile/Customer/PersonName/GivenName/text())[1]'/span>, 'nvarchar(255) ' )
FROM ExampleTable
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/322163.html
標籤:
上一篇:設定定義永久關閉
下一篇:對資料幀串列的聚合函式R
