【发布时间】:2023-03-17 13:48:01
【问题描述】:
我是在 SQL Server 中处理 XML 数据的新手。我遇到了一篇文章 (https://www.mssqltips.com/sqlservertip/2899/importing-and-processing-data-from-xml-files-into-sql-server-tables/) 并尝试根据我的 XML 进行修改,但我没有得到任何输出或错误。我不知道如何进一步进行,任何帮助表示赞赏。我提供了以下示例:
DECLARE @XML AS XML, @hDoc AS INT, @SQL NVARCHAR (MAX)
SELECT @XML = '<DataSet xmlns="http://www.example.com/">
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<General_x0020_Report diffgr:id="General Report1" msdata:rowOrder="0">
<Device_x0020_No>224610</Device_x0020_No>
<License_x0020_Plate>AAA 123</License_x0020_Plate>
<Driver>Driver Name</Driver>
<Date_x002F_Time>2018-01-01T12:46:04+03:00</Date_x002F_Time>
</General_x0020_Report>
</NewDataSet>
</diffgr:diffgram>
</DataSet>'
EXEC sp_xml_preparedocument @hDoc OUTPUT, @XML
SELECT Device_x0020_No, License_x0020_Plate, Driver, Date_x002F_Time
FROM OPENXML(@hDoc, 'DataSet/diffgr/NewDataSet/General_x0020_Report')
WITH
(
Device_x0020_No [varchar](50) 'Device_x0020_No',
License_x0020_Plate [varchar](100) 'License_x0020_Plate',
Driver [varchar](100) 'Driver',
Date_x002F_Time [varchar](100) 'Date_x002F_Time'
)
EXEC sp_xml_removedocument @hDoc
GO
编辑 1:我发现问题在于“diffgr:diffgram”,但不确定如何解决此查询中的命名空间问题
【问题讨论】:
标签: xml sql-server-2008 tsql xpath xquery