从SQL Server查询中获取XML节点

时间:2017-01-21 11:09:37

标签: sql-server xml

我正在尝试使用SQL Server进入XML节点。

CREATE TABLE temp.testXML(ID INT, xmlinput XML NULL);

INSERT INTO temp.testXML 
VALUES (1, '<root><node1><lang>English</lang></node1><innernode><info>20170117T022113</info></innernode></root>')

我想打印&#34; info&#34;节点即&#34; 20170117T022113&#34;

SELECT 
    t.id,
    x.XmlCol.value('(/innernode/info)[1]', 'VARCHAR(100)') AS dt
FROM 
    [temp].[testxml] as t
CROSS APPLY 
    t.rawxml.nodes('/root') as x(XmlCol)

我收到了空。

如何获取节点值?

由于 MR

1 个答案:

答案 0 :(得分:1)

您的查询中有两个错误

  • 使用xmlinput函数中的nodes列名称代替rawxml
  • 删除值函数中的第一个/

查询

SELECT t.id,
       x.XmlCol.value('(innernode/info)[1]', 'VARCHAR(100)') AS dt
FROM   [testxml] AS t
       CROSS APPLY t.xmlinput.nodes('/root') AS x(XmlCol)