Я пытаюсь прочитать ниже XML в SQL.Но я всегда получаю нулевые значения.
Я сохранил свой XML в таблице EMPweb
и затем попытался прочитать XML.Мой код SQL, как показано ниже.Пожалуйста, помогите, если можете.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetEmployeeResponse xmlns="http://tempuri.org/">
<GetEmployeeResult>
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="Plant">
<xs:element name="Plant" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="OrderReleaseAblity">
<xs:complexType>
<xs:sequence>
<xs:element name="BusinessEntityID" type="xs:int" minOccurs="0" />
<xs:element name="NationalIDNumber" type="xs:string" minOccurs="0" />
<xs:element name="LoginID" type="xs:string" minOccurs="0" />
<xs:element name="JobTitle" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<Plant xmlns="">
<OrderReleaseAblity diffgr:id="OrderReleaseAblity1" msdata:rowOrder="0">
<BusinessEntityID>275</BusinessEntityID>
<NationalIDNumber>841560125</NationalIDNumber>
<LoginID>adventure-works\michael9</LoginID>
<JobTitle>Sales Representative</JobTitle>
</OrderReleaseAblity>
</Plant>
</diffgr:diffgram>
</GetEmployeeResult>
</GetEmployeeResponse>
</soap:Body>
</soap:Envelope>
SQL-запрос:
DECLARE @xDoc XML ;
Set @xDoc= (Select Data_xml from EMPWeb);
;WITH XMLNAMESPACES('urn:schemas-microsoft-com:xml-msdata' as msdata,'urn:schemas-microsoft-com:xml-diffgram-v1' as diffgr,default 'http://www.w3.org/2001/XMLSchema' )
select T.X.value('JobTitle[1]','varchar(500)') AS JobTitle
from @xDoc.nodes('GetEmployeeResponse/GetEmployeeResult/diffgr:diffgram/Plant/OrderReleaseAblity') as T(X)