2017-04-06 27 views
3

XMLをSQL Server 2012データベースに解析する必要があります。しかし、私はこの種のXMLを解析するために何か良いガイドを見つけることができません(ここでは、テーブルFROM SELECT TOP 2):SQL ServerのXML解析の問題

<ns2:SoftWare xmlns:ns2="http://www.example.com" xmlns:ns3="http://www.example2.com"><keyc>123-ABC</keyc><statusc>Y</statusc></ns2:SoftWare> 
<ns2:custom-data xmlns:ns2="http://www.example.com/2"><timec>2016.01.02</timec><customer>8R</customer><keyc>8R</keyc><statusc>N</statusc></ns2:custom-data> 

すべてのヘルプ、どのように私はXMLから「KEYC」値を解析することができますが?

ですから、select句を使用するか、データベースに挿入することができます。

答えて

3

あなたは、そのエンティティを取得するためにnodesvalueを使用することができます。

DECLARE @Data TABLE (XmlText XML) 
INSERT @Data VALUES 
    ('<ns2:SoftWare xmlns:ns2="http://www.example.com" xmlns:ns3="http://www.example2.com"><keyc>123-ABC</keyc><statusc>Y</statusc></ns2:SoftWare>'), 
    ('<ns2:custom-data xmlns:ns2="http://www.example.com/2"><timec>2016.01.02</timec><customer>8R</customer><keyc>8R</keyc><statusc>N</statusc></ns2:custom-data>') 

SELECT 
    Nodes.KeyC.value('.', 'VARCHAR(50)') AS KeyC 
FROM @Data D 
    CROSS APPLY XmlText.nodes('//keyc') AS Nodes(KeyC) 

これは、次のように出力します

KeyC 
----------- 
123-ABC 
8R