2009-11-02 6 views
5

Ich habe ein XML wie folgt aus:Wie den Attributwert mit XQuery in MS SQL Server 2008 erhalten

<EXP> 
    <TITLES> 
    <SUBTITLE CL="AXT4" FL="1" NB="Text 1"/> 
    </TITLES> 
    <TITLES> 
    <SUBTITLE CL="BVT6" FL="2" NB="Text 2"/> 
    </TITLES> 
    <TITLES> 
    <SUBTITLE CL="PLO7" FL="3" NB="Text 3"/> 
    </TITLES> 
</EXP> 

XQuery Verwendung in SQL Server 2008: Wie kann ich in einem einfach den Wert des Attributs NB wählen Liste von Zeilen (ich brauche alle möglichen Werte),

Beispiel:

- Untertitel -

Text 1

Text 2

Text 3

Antwort

8
DECLARE @x xml; 
SET @x = N'<EXP> 
    <TITLES> 
    <SUBTITLE CL="AXT4" FL="1" NB="Text 1"/> 
    </TITLES> 
    <TITLES> 
    <SUBTITLE CL="BVT6" FL="2" NB="Text 2"/> 
    </TITLES> 
    <TITLES> 
    <SUBTITLE CL="PLO7" FL="3" NB="Text 3"/> 
    </TITLES> 
</EXP> 
'; 

SELECT 
    t.c.value(N'@NB', N'nvarchar(10)') AS Subtitles 
FROM 
    @x.nodes(N'/EXP/TITLES/SUBTITLE') t(c); 

Die nodes Ausdruck Fetzen in Zeilen und die value ruft den Spaltenwert.

Verwandte Themen