在 SQL 服务器中查询 xml - 转义方括号

Query xml in SQL Server - escaping square brackets

我正在尝试在 SQL 服务器中查询 XML,但由于我的数据包含 [].

,所以出现错误

我的 XML 格式(第三方所以我无法更改此格式并删除方括号):

<MyRootElement>
    <MyChildElement name="[Name1]"><MyChildElement>
    <MyChildElement name="[Name2]"><MyChildElement>
    <MyChildElement name="[Name3]"><MyChildElement>
</MyRootElement>

我想获取 xml 包含具有特定名称的 MyChildElement 的所有记录。

我试过:

SELECT * 
FROM MyTable
WHERE MyXmlColumn.exist(N'/MyRootElement/MyRootElement[@name=[Name2]]') = 1

SQL 错误信息:

XQuery invalid source character: [

如果我转义 [Name](=&#91;Name1&#93;) 的方括号,那么它会抱怨 &

那么我怎样才能让这个查询起作用呢?

有没有更好的方法?

文字字符串应该用双引号引起来,这种情况下不需要转义:

SELECT * 
FROM MyTable
WHERE MyXmlColumn.exist(N'/MyRootElement/MyChildElement[@name="[Name2]"]') = 1