在 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]
(=[Name1]
) 的方括号,那么它会抱怨 &
那么我怎样才能让这个查询起作用呢?
有没有更好的方法?
文字字符串应该用双引号引起来,这种情况下不需要转义:
SELECT *
FROM MyTable
WHERE MyXmlColumn.exist(N'/MyRootElement/MyChildElement[@name="[Name2]"]') = 1
我正在尝试在 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]
(=[Name1]
) 的方括号,那么它会抱怨 &
那么我怎样才能让这个查询起作用呢?
有没有更好的方法?
文字字符串应该用双引号引起来,这种情况下不需要转义:
SELECT *
FROM MyTable
WHERE MyXmlColumn.exist(N'/MyRootElement/MyChildElement[@name="[Name2]"]') = 1