Sql server 从xml列获取节点的路径

Sql server 从xml列获取节点的路径,sql-server,xml,Sql Server,Xml,在MicrosoftSQLServer2008中,是否可以使用sql命令从xml类型的列中以字符串形式获取节点的路径 大概是这样的: select xcolumn.path('//somenode1[@id="1234"]') as result from xtable 或 XPath或XQuery中似乎没有内置的方法 我确实找到了一个算法的JavaScript实现,该算法将返回节点的路径,给定该节点所属的文档。也许您可以创建一个可以实现相同逻辑的T-SQL UDF: 其他人指出Firebug

在MicrosoftSQLServer2008中,是否可以使用sql命令从xml类型的列中以字符串形式获取节点的路径

大概是这样的:

select xcolumn.path('//somenode1[@id="1234"]') as result from xtable


XPath或XQuery中似乎没有内置的方法

我确实找到了一个算法的JavaScript实现,该算法将返回节点的路径,给定该节点所属的文档。也许您可以创建一个可以实现相同逻辑的T-SQL UDF:


其他人指出Firebug是开源的,并且具有这样做的逻辑,所以算法是可用的。但是,T-SQL中也没有

//somenode1[@id=1234]已经是该节点的路径。您还需要什么?大概OP需要一个完全限定的路径。好吧,我怀疑它会很快,但无论如何还是要感谢您。@Siggi如果SQL Server支持在XPath中使用祖先或祖先或自轴,这将很容易做到,但事实并非如此。如果您可以选择编写CLR函数,这将非常容易。
select xcolumn.query('path(//somenode1[@id="1234"]);') as result from xtable