我有这个XQuery
声明@XML xml
set @XML =
'
<root>
<row1>
<value>1</value>
</row1>
<1row2>
<value>2</value>
</1row2>
</root>
'
select @XML.query('/root/1row2')
我一直在尝试选择1row2时出现白色错误。
此错误
XQuery [query()]: Syntax error near '1', expected a step expression.
似乎当xml节点以数字开头时,我只是一直收到此错误,有没有办法选择所述节点?
答案 0 :(得分:3)
从XML Naming Rules开始,XML元素必须遵循以下命名规则:
因此,元素名称必须以字母或下划线开头。在SQL Server 2016 SP1
上,您的XML事件无效,并且无法执行:
您需要将字符串修复为有效的XML或使用其他某种技术(例如,用于实现正则表达式表达支持或拆分节点的SQL CLR函数)查询数据。