0
嗨,我有以下SQL来尝试解析xml并提取“OrderNumber”。我遇到的问题是这个XML(我无法控制)有一个奇怪的XML命名空间。我只是为了这个例子把它改成了abc.com,但是它是其他的东西。无论如何,当该名称空间存在时,T-SQL将在结果中返回空值。所以它不能很好地与命名空间搭配。如果我手动删除名称空间或者通过T-SQL进行搜索和替换,它就可以正常工作。我想我可以做一个搜索和替换,但该解决方案只是困扰我。想知道是否有其他人对此有更好的解决方法?也许是为什么它不喜欢命名空间的解释?真的很感谢一些建议。谢谢!使用错误的xml命名空间解析SQL
Declare @Transmission xml
set @Transmission = '<Transmission>
<Requests>
<SubmitOrdersRequest>
<Orders>
<Order xmlns="http://www.abc.com">
<OrderNumber>123</OrderNumber>
</Order>
</Orders>
</SubmitOrdersRequest>
</Requests>
</Transmission>'
select @Transmission.value('(Transmission/Requests/SubmitOrdersRequest/Orders/Order/OrderNumber/text())[1]', 'varchar(100)')