具有命名空间属性的sql server XML参数
我正在将xml数据传递给存储过程。如果xml包含xmlns属性,那么它将失败。当我删除xmlns时,它工作正常。在传递到存储过程之前,如何删除xmlns。我使用的是sql server 2008。不要试图避免它们-使用它们 最简单的方法是将具有命名空间属性的sql server XML参数,xml,sql-server-2008,stored-procedures,Xml,Sql Server 2008,Stored Procedures,我正在将xml数据传递给存储过程。如果xml包含xmlns属性,那么它将失败。当我删除xmlns时,它工作正常。在传递到存储过程之前,如何删除xmlns。我使用的是sql server 2008。不要试图避免它们-使用它们 最简单的方法是将与XMLNAMESPACES构造一起使用,类似于: ;WITH XMLNAMESPACES(DEFAULT 'http://your.name.space.here/2011/June') ( -- your XQuery/XPath code here
与XMLNAMESPACES
构造一起使用,类似于:
;WITH XMLNAMESPACES(DEFAULT 'http://your.name.space.here/2011/June')
(
-- your XQuery/XPath code here - it will by default use the namespace given
)
您也可以很容易地拥有多个名称空间——您还可以为它们提供前缀(并在XPath表达式中使用前缀):
有关更多详细信息和解释,请参阅
;WITH XMLNAMESPACES('http://your.name.space.here/2011/June' AS ns)
(
-- your XQuery/XPath code here - it will by default use the namespace given
....... xmlcolumn.value('(/ns:root/ns:subelement......)[1]', 'int'). .....
)