我正在使用一个相当简单的 Xpath 查询(下)来查询 SQL Server 2008 数据库列,其值都遵循示例的形式(下)。我的查询返回NULL
所有行,而不是example
属性的值(例如“VALUE”),即使该example
属性是为我查询的每一行定义的。
我尝试在我的 Xquery 表达式中声明xsd
和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