带有不区分大小写标签的 XML 查询

IT *_*her 3 xml sql-server sql-server-2008-r2 xquery

我有一个要求,我希望 XML 标记在我的 xml 查询中不区分大小写。

例如:

DECLARE @myTable TABLE ( yourXML XML )  

INSERT INTO @myTable SELECT '<z><a><b>1</b><c>2</c></a></z>'
INSERT INTO @myTable SELECT '<Z><A><b>1</b><c>2</c></A></Z>'   

SELECT * FROM @myTable WHERE ( [yourXML].exist('for $x in /z/a where  ( ($x/b[1]) = 1 )  return $x')>0 ) 
Run Code Online (Sandbox Code Playgroud)

返回输出为

yourXML
<z><a><b>1</b><c>2</c></a></z>
Run Code Online (Sandbox Code Playgroud)

但我希望在不考虑 XML 标记大小写的情况下显示输出。所以我想要的输出应该是

yourXML
<z><a><b>1</b><c>2</c></a></z>
<Z><A><b>1</b><c>2</c></A></Z>
Run Code Online (Sandbox Code Playgroud)

怎么做?

小智 5

使用带有名称测试的谓词,而不是“简单”节点步骤:

/*[lower-case(local-name(.)) = 'z']/*[lower-case(local-name(.)) = 'a']
Run Code Online (Sandbox Code Playgroud)