Я пытаюсь получить значения из некоторого XML в SQL, но борюсь с последней частью, как я могу получить значения из этого?
DECLARE @Info XML
SET @Info=N'<?xml version="1.0" encoding="utf-16"?>
<ArrayOfDriveData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DriveData>
<DriveName>C:\</DriveName>
<DriveSpace>429223288832</DriveSpace>
</DriveData>
<DriveData>
<DriveName>I:\</DriveName>
<DriveSpace>228759863296</DriveSpace>
</DriveData>
</ArrayOfDriveData>'
-- Declare a handle for the xml document
DECLARE @idoc INT
-- Prepare the xml
EXEC sp_xml_preparedocument @idoc OUTPUT, @Info
SELECT
*
FROM
OPENXML (@idoc, '/ArrayOfDriveData/DriveData/,3)
Результаты, которые я получаю:
id | parentid | nodetype | localname| namespaceuri | datatype | prev | text
4 0 1 DriveData NULL NULL NULL NULL NULL
5 4 1 DriveName NULL NULL NULL NULL NULL
10 5 3 #text NULL NULL NULL NULL C:\
6 4 1 DriveSpace NULL NULL NULL 5 NULL
11 6 3 #text NULL NULL NULL NULL 429223288832
7 0 1 DriveData NULL NULL NULL 4 NULL
8 7 1 DriveName NULL NULL NULL NULL NULL
12 8 3 #text NULL NULL NULL NULL I:\
9 7 1 DriveSpace NULL NULL NULL 8 NULL
13 9 3 #text NULL NULL NULL NULL 228759863296
Кажется, единственные столбцы, которые мне нужны, это localname и Text, в идеале я бы хотел, чтобы результат выглядел следующим образом:
Drive | Space
C:\ 123456
Вероятно, об этом спрашивали раньше, но я не мог видеть, чтобы кто-нибудь отвечал, как это сделать.это (много данных о том, как получить XML из таблицы, не так много о том, как получить данные в таблицу из XML), и моего опыта в этой области немного не хватает, поэтому я застрял на том, как закончить это.
Спасибо