私はかなり単純な Xpath クエリ (下記) を使用して、SQL Server 2008 データベースの列をクエリします。その値はすべて、例の形式に従います (下記)。クエリを実行しているすべての行に対して属性が定義されているにもかかわらず、属性の値 (「VALUE」など) ではNULL
なく、すべての行に対してクエリが返されます。example
example
xsd
Xquery 式で名前空間と名前空間を宣言し、xsi
複数の異なる属性名から選択しようとしましたが、どちらも効果がありませんでした。私は何が欠けていますか?
クエリ:
select ColumnName.value('(/RootNode/@example)[1]', 'nvarchar(15)') [Result]
from TableName
XML サンプル ノード(実際の XML にはさらに多くの属性が含まれていますが、省略しました):
<RootNode xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://intranet"
example="VALUE">
<IsValid>true</IsValid>
</RootNode>
名前空間を使用してクエリを試行しましたが、同じ結果になりました:
select ColumnName.value('
declare namespace xsd="http://www.w3.org/2001/XMLSchema";
declare namespace xsi="http://www.w3.org/2001/XMLSchema-instance";
(/RootNode/@example)[1]', 'nvarchar(15)') [Result]
from TableName