在XQuery中转义源XML中的花括号

在XQuery中转义源XML中的花括号,xml,xml-parsing,xquery,basex,Xml,Xml Parsing,Xquery,Basex,使用XQuery(BaseX实现),我需要处理一组XML记录,这些记录可能在元素文本中包含成对的花括号(例如,Abc{de}fg)。现在,我正在对XQuery之外的记录进行预处理,以确保这些字符已被转义为双括号(Abc{{de}}}fg) 是否有一种标准方法可以在XQuery中转义这些字符以防止它们作为表达式执行?如果要在查询中嵌入任意UTF-8编码的XML输入,可以使用XQuery 3.1字符串构造函数和fn:parse XML: let $string := ``[<a>Abc

使用XQuery(BaseX实现),我需要处理一组XML记录,这些记录可能在元素文本中包含成对的花括号(例如,
Abc{de}fg
)。现在,我正在对XQuery之外的记录进行预处理,以确保这些字符已被转义为双括号(
Abc{{de}}}fg


是否有一种标准方法可以在XQuery中转义这些字符以防止它们作为表达式执行?

如果要在查询中嵌入任意UTF-8编码的XML输入,可以使用XQuery 3.1字符串构造函数和
fn:parse XML

let $string := ``[<a>Abc {de} fg</a>]``
return fn:parse-xml($string)
let$string:=``[Abc{de}fg]``
返回fn:parse xml($string)
唯一需要确保的是XML字符串不包含字符
]`


通常,最安全的方法是将输入保存在外部文件(或数据库)中,并通过
fn:doc
fn:collection
fetch:xml
db:open
等方式对其进行寻址。

如果您有xml源代码,你不是用
doc
collection
来解析它吗?如果有大括号就不重要了?毕竟,它们只在XQuery代码中有特殊意义,而在XML输入中没有特殊意义。我的困惑来自于试图从Python客户端库使用XQuery。