我刚刚开始在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')。
希望那会有所返回! ;-)
马克