5

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>
4

1 に答える 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')。

うまくいけば、それは何かを返すでしょう! ;-)

マルク

于 2009-08-19T19:28:36.823 に答える