0

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"/> 
1

1 Answer 1

2

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:

enter image description here

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.