繁体   English   中英

如何在 SQL Server 中读取 XML 重复节点

[英]How to read XML repeated nodes in SQL Server

我正在使用以下代码来读取 OrderId 但它只显示第一个

DECLARE @InputXMLHandle int
Declare @RequestXml xml = '<Request><OrderStatus>
                                       <OrderId>RSIN10095</OrderId>
                                       <OrderId>RSIN10096</OrderId>
                                    </OrderStatus>
                            </Request>'
EXEC sp_xml_preparedocument @InputXMLHandle OUTPUT, @RequestXml
    
Select *
From OPENXML(@InputXMLHandle,'/Request/OrderStatus')
WITH
(     
    OrderId varchar(50) 'OrderId'
)

使用完整路径

DECLARE @InputXMLHandle int
Declare @RequestXml xml = '<Request><OrderStatus>
                                       <OrderId>RSIN10095</OrderId>
                                       <OrderId>RSIN10096</OrderId>
                                    </OrderStatus>
                            </Request>'
EXEC sp_xml_preparedocument @InputXMLHandle OUTPUT, @RequestXml
Select *
From OPENXML(@InputXMLHandle,'/Request/OrderStatus/OrderId')
WITH
(     
    OrderId varchar(50) '.'
)

或使用 xml 方法

Declare @RequestXml xml = '<Request><OrderStatus>
                                       <OrderId>RSIN10095</OrderId>
                                       <OrderId>RSIN10096</OrderId>
                                    </OrderStatus>
                            </Request>';
select t.n.value('.[1]', 'varchar(50)') id
from @RequestXml.nodes('/Request/OrderStatus/OrderId') t(n);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM