2012-11-05 133 views
0

如何从这样的XML选择文件名,即 我只需要姓名:SQL Server XML查询:如何选择值?

c:\temp\f1.txt 
c:\temp\f2.txt 

XML这样的:

<root name="name" id="12"> 
<class1> 
    <file name="c:\temp\f1.txt"> 
</class1> 
<class1> 
    <subclass1> 
     <file name="c:\temp\f2.txt"> 
    </subclass1> 
</class1> 
</root> 

回答

2
declare @XML xml 
set @XML = ' 
<root name="name" id="12"> 
    <class1> 
     <file name="c:\temp\f1.txt"/> 
    </class1> 
    <class1> 
    <subclass1> 
      <file name="c:\temp\f2.txt"/> 
     </subclass1> 
    </class1> 
</root>' 

select T.N.value('@name', 'nvarchar(100)') as FileName 
from @XML.nodes('//file') as T(N) 
+0

太棒了!日Thnx! :-) – Oleg