我刚刚开始在SQL Server数据库中查询XML。我在使用最基本的查询时遇到了麻烦。这是一个简化的示例。如何返回说明?下面的SELECT语句是我正在使用的内容,但未返回任何内容。

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

这是我正在使用的XML文件的代码段:
<dsIncident xmlns="http://tempuri.org/dsIncident.xsd">
  <IncidentInformation>
    <Description>This is the description.</Description>
    <Country>Singapore</Country>
  </IncidentInformation>
</dsIncident>

最佳答案

好吧,您错过了XML namespace ! :-)

试试这个:

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数据进行查询期间的 namespace (带有您选择的前缀-可以是任何东西-此处为'x')。

希望那会有所返回! ;-)

马克

10-06 12:39