SQL Server中的XML查询

5

我刚开始在 SQL Server 数据库中查询 XML,但是最基本的查询让我遇到了麻烦。以下是一个简化的示例,我该如何返回描述信息?我正在使用的 SELECT 语句如下,但它没有返回任何内容。

SELECT Incidents.IncidentXML.query
('data(/dsIncident/IncidentInformation/Description)') AS Description 
FROM Incidents

这是我使用的XML文件代码片段:

以下是我使用的XML文件代码片段:

<dsIncident xmlns="http://tempuri.org/dsIncident.xsd">
  <IncidentInformation>
    <Description>This is the description.</Description>
    <Country>Singapore</Country>
  </IncidentInformation>
</dsIncident>
1个回答

13

嗯,你错过了XML命名空间!:-)

尝试这个:

SELECT 
  Incidents.IncidentXML.query('declare namespace x="http://tempuri.org/dsIncident.xsd";
          (/x:dsIncident/x:IncidentInformation/x:Description)') AS Description 
FROM Incidents
魔法在于它的本质。
declare namespace x="http://tempuri.org/dsIncident.xsd"

这里是一个部分 - 它声明了在该XML数据上查询的命名空间(使用您选择的前缀 - 可以是任何东西 - 这里是“x”)。

希望这样能返回一些结果! ;-)

Marc


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接