我需要一个XML元素的XML元素

问题描述:

让我们假装我有以下XML。我需要一个XML元素的XML元素

<xml> 
... 
<tag> 
    <othertag> 
    </othertag> 
</tag> 
... 
</xml> 

我要的是 “提取” 的

<tag> 
    <othertag> 
    </othertag> 
</tag> 

到另一个变量。 我怎样才能做到这一点?

DECLARE @xml XML= 
'<xml> 
<SomeTag test="x"/> 
<SomeTag test="y"/> 
<tag> 
    <othertag> 
    </othertag> 
</tag> 
<SomeTag test="z"/> 
</xml>'; 

如果可能的话,要尽可能具体

DECLARE @xml2 XML = @xml.query('(/xml/tag)[1]'); 

SELECT @xml2; 

如果没有,你可能会去偷懒的方法...

DECLARE @xml3 XML = @xml.query('//tag'); 

SELECT @xml3;