使用tsql检查XML中是否存在元素 [英] Check if element exists in XML using tsql
本文介绍了使用tsql检查XML中是否存在元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下内容:查询返回1是正确的,但是如果我将命名空间添加到
I have the following : Where the query returns 1 which is correct but if I add namespace to
<Data xmlns="urn:semi-org:xsd.E142-1.V1005.SubstrateMap">
查询返回0
the query returns 0
DECLARE @ExportData XML
SELECT @ExportData =
'<Data >
<BulkData>
<EachData Parts="Test1" />
<EachData Parts="Test2" />
<EachData Parts="Test3" />
</BulkData>
</Data>';
SELECT @ExportData.exist('(//BulkData)')
我是什么尝试过:
我尝试更改选择语句
What I have tried:
I have tried changing select statement
SELECT @ExportData.exist('(*/BulkData)')
推荐答案
您需要在制作Xquery时更改默认命名空间,这里有两个解决方案< br $>
Hi you need to change the default namespace when you make Xquery, here here is two solutions
DECLARE @ExportData XML
SELECT @ExportData =
'<Data xmlns="urn:semi-org:xsd.E142-1.V1005.SubstrateMap">
<BulkData>
<EachData Parts="Test1" />
<EachData Parts="Test2" />
<EachData Parts="Test3" />
</BulkData>
</Data>';
SELECT @ExportData.exist('
declare namespace ns="urn:semi-org:xsd.E142-1.V1005.SubstrateMap";
ns:*/ns:BulkData')
;WITH XMLNAMESPACES (DEFAULT N'urn:semi-org:xsd.E142-1.V1005.SubstrateMap')
SELECT @ExportData.exist('*/BulkData')
这篇关于使用tsql检查XML中是否存在元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文