使用tsql检查XML中是否存在元素 [英] Check if element exists in XML using tsql

查看:105
本文介绍了使用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屋!

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