0

SQL Server 2008 でオープン xml を使用して祖先タグ名を取得しようとしています。これまでに試したことは次のとおりです。

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

3 番目のタグの名前を取得する必要があります*。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 に答える