在SQL Server中解析简单XML

时间:2013-07-05 09:03:05

标签: sql-server xml sql-server-2008

如何将以下xml解析为记录集?

<root>
    <240>0</240>
    <241>1</241>
    <242>2</242>
    <243>3</243>
    <249>4</249>
</root>

<root 240="0" 241="1" 242="2" 243="3" 249="4"/>

当我尝试

declare @ids xml = N'<root><240>0</240><241>1</241></root>'

SELECT T.Item.value('240[1]', 'int') 
from @ids.nodes('/root') AS T(Item)

我收到错误

  

ML解析:第1行,字符8,非法限定名称字符:声明@ids xml = N'&lt; 240&gt; 0'SELECT T.Item.value('a [1]','int')来自@ ids.nodes('/ root')AS T(Item)

但一般来说我需要以下输出:

|240|0|
|241|1|
...

当xml元素按常规命名时,一切都正常(<row key=240 value="0"/>)。

1 个答案:

答案 0 :(得分:1)

XML disallows使用数字作为元素名称的第一个字符。使用示例中的格式:

<row key=240 value="0"/>