How to insert from XML file into SQL Server if the format of file is like this?
I want columns Description
, Alias
, and Name
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ldmlBCP47 SYSTEM "../../common/dtd/ldmlBCP47.dtd">
<ldmlBCP47>
<version number="$Revision: 6625 $"/>
<generation date="$Date: 2012-03-01 15:01:04 -0800 (Thu, 01 Mar 2012) $"/>
<keyword>
<key description="Time zone key" alias="timezone" name="tz">
<type description="Andorra" alias="Europe/Andorra" name="adalv"/>
<type description="Dubai, United Arab Emirates" alias="Asia/Dubai" name="aedxb"/>
<type description="Kabul, Afghanistan" alias="Asia/Kabul" name="afkbl"/>
<type description="Antigua" alias="America/Antigua" name="aganu"/>
<type description="Anguilla" alias="America/Anguilla" name="aiaxa"/>
<type description="Tirane, Albania" alias="Europe/Tirane" name="altia"/>
Assuming you mean to fetch the three attributes from the <type>
XML element, then you can try this:
DECLARE @input XML = '<ldmlBCP47>
<version number="$Revision: 6625 $"/>
<generation date="$Date: 2012-03-01 15:01:04 -0800 (Thu, 01 Mar 2012) $"/>
<keyword>
<key description="Time zone key" alias="timezone" name="tz">
<type description="Andorra" alias="Europe/Andorra" name="adalv"/>
<type description="Dubai, United Arab Emirates" alias="Asia/Dubai" name="aedxb"/>
<type description="Kabul, Afghanistan" alias="Asia/Kabul" name="afkbl"/>
<type description="Antigua" alias="America/Antigua" name="aganu"/>
<type description="Anguilla" alias="America/Anguilla" name="aiaxa"/>
<type description="Tirane, Albania" alias="Europe/Tirane" name="altia"/>
</key>
</keyword>
</ldmlBCP47>'
SELECT
[Description] = XTbl.TypeNode.value('@description', 'varchar(50)'),
[Alias] = XTbl.TypeNode.value('@alias', 'varchar(50)'),
[Name] = XTbl.TypeNode.value('@name', 'varchar(50)')
FROM
@input.nodes('/ldmlBCP47/keyword/key/type') AS XTbl(TypeNode)
Results in an output like:
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.