0

我正在尝试使用 sql server 2008 中的 open xml 获取祖先标签名称。这是我到目前为止所尝试的:

SELECT * FROM OPENXML(@idoc, '/Envelope/Body/*/TagParent/Tag')
WITH (
    [Name]    varchar(max) '../@mp:parentLocalName'
)

我需要获取第三个标签的名称,*。我可以成功运行 parentlocalname 和 localname,但对父母的父母没有任何作用。我已经尝试了上面的许多变体,它只是错误地说没有定义命名空间 mp。是否甚至可以获取该名称。

4

1 回答 1

1

这有点笨拙,但应该可以工作,../../.您要寻找的父母的路径在哪里。

SELECT Name.value('local-name((*)[1])','nvarchar(100)') 
FROM OPENXML(@idoc, '/Envelope/Body/*/TagParent/Tag')
WITH (
    [Name]    xml '../../.'
)

工作示例。

于 2012-07-19T20:16:23.813 回答