当xml在SQL Server 2012中有冒号时,如何解析XML [英] How to parse XML when xml has colon in SQL server 2012

查看:141
本文介绍了当xml在SQL Server 2012中有冒号时,如何解析XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我需要在sql server中解析下面的xml来获取元素dc.01.02:SC.PC.Amount的值。



Hi All,

I need to parse the below xml in sql server to get the value of the element "dc.01.02:SC.PC.Amount".

<xbrl xmlns:dc.01.02="http://www.google.com">
    <dc.01.02:SC.SG.Amount decimals="2" contextRef="SFM" unitRef="AUD">-500</dc.01.02:SC.SG.Amount>
    <dc.01.02:SC.AP.Amount decimals="2" contextRef="SFM" unitRef="AUD">10</dc.01.02:SC.AP.Amount>
    <dc.01.02:SC.PC.Amount decimals="2" contextRef="SFM" unitRef="AUD">20</dc.01.02:SC.PC.Amount>
    <dc.01.02:SC.SS.Amount decimals="2" contextRef="SFM" unitRef="AUD">30</dc.01.02:SC.SS.Amount>
    <dc.01.02:SC.CV.Amount decimals="2" contextRef="SFM" unitRef="AUD">40</dc.01.02:SC.CV.Amount>
    <dc.01.02:SC.SC.Amount decimals="2" contextRef="SFM" unitRef="AUD">50</dc.01.02:SC.SC.Amount>
    <dc.01.02:SC.CC.Amount decimals="2" contextRef="SFM" unitRef="AUD">60</dc.01.02:SC.CC.Amount>
    <dc.01.02:SC.OC.Amount decimals="2" contextRef="SFM" unitRef="AUD">70</dc.01.02:SC.OC.Amount>
</xbrl>





-----



所以我的输出看起来像20


请在SQL帮助我



谢谢&问候

chiru



-----

so my output look like "20"

Please help me out here in SQL

Thanks & Regards
chiru

推荐答案

尝试这种方法



Try this approach

DECLARE @string NVARCHAR(MAX);
SET @string = 
  '<xbrl xmlns:dc.01.02="http://www.google.com">
    <dc.01.02:sc.sg.amount decimals="2" contextref="SFM" unitref="AUD">-500</dc.01.02:sc.sg.amount>
    <dc.01.02:sc.ap.amount decimals="2" contextref="SFM" unitref="AUD">10</dc.01.02:sc.ap.amount>
    <dc.01.02:sc.pc.amount decimals="2" contextref="SFM" unitref="AUD">20</dc.01.02:sc.pc.amount>
    <dc.01.02:sc.ss.amount decimals="2" contextref="SFM" unitref="AUD">30</dc.01.02:sc.ss.amount>
    <dc.01.02:sc.cv.amount decimals="2" contextref="SFM" unitref="AUD">40</dc.01.02:sc.cv.amount>
    <dc.01.02:sc.sc.amount decimals="2" contextref="SFM" unitref="AUD">50</dc.01.02:sc.sc.amount>
    <dc.01.02:sc.cc.amount decimals="2" contextref="SFM" unitref="AUD">60</dc.01.02:sc.cc.amount>
    <dc.01.02:sc.oc.amount decimals="2" contextref="SFM" unitref="AUD">70</dc.01.02:sc.oc.amount>
</xbrl>'

SET @string = REPLACE(@string, ':SC.', '_SC.')

DECLARE @XMLSTRING XML = @string

SELECT  T.C.query('node()')
from	@XMLSTRING.nodes('/xbrl/dc.01.02_SC.PC.Amount') as T(C)


这篇关于当xml在SQL Server 2012中有冒号时,如何解析XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆