2010-09-08 2 views
0

Je suis en train d'interroger un certain XML dans SQL Server mais je suis en difficulté:SQL: Requête d'une liste dans une liste XML

Voici quelques exemple XML:

<BaseReport> 
    <Parties> 
    <Party> 
    <SubjectType> 
     <ListItem Name="SubjectType1Name" /> 
     <ListItem Name="SubjectType2Name" /> 
    </SubjectType> 
    </Party> 
    <Party> 
     <SubjectType> 
     <ListItem Name="SubjectType1Name" /> 
     <ListItem Name="SubjectType2Name" /> 
    </SubjectType> 
    </Party> 
    </Parties> 
</BaseReport> 

Mon but est d'extraire le nom du type de sujet de mon xml. Cependant, je ne suis pas sûr de savoir comment interroger la liste dans une liste. Je veux saisir le premier sujet de la première partie. J'ai essayé ce qui suit en vain:

SELECT myXML.value('(/BaseReport/Parties/Party/SubjectType/@Name)[1]', 'varchar(50)') as Name_Type 
FROM MyTable 

Et il renvoie tous les nulls (aka ma requête est erronée). Aucune suggestion?

Répondre

2

Vous avez écrit:

Je veux saisir la première Partie du premier type sujet

Ainsi, le XPath correcte devrait être:

/BaseReport/Parties/Party[1]/SubjectType/ListItem[1]/@Name 
+0

@Alejandro Belle, exactement ce que J'avais besoin, merci! – mint

+0

@ mint: Vous êtes bienvenu! –

Questions connexes