J'ai une grosse note XML avec de nombreux nœuds.
y a-t-il une façon de ne pouvoir sélectionner qu'un seul nœud et tout son contenu du plus grand XML?
j'utilise SQL 2005
Vous devez utiliser la méthode Query () Si vous souhaitez faire participer votre XML.
declare @XML xml
set @XML =
'
<root>
<row1>
<value>1</value>
</row1>
<row2>
<value>2</value>
</row2>
</root>
'
select @XML.query('/root/row2')
Résultat:
<row2>
<value>2</value>
</row2>
Si vous souhaitez la valeur d'un nœud spécifique, vous devez utiliser Méthode Value () .
select @XML.value('(/root/row2/value)[1]', 'int')
Résultat:
2
Mise à jour:
Si vous souhaitez déchiqueter votre XML sur plusieurs lignes, vous utilisez Méthode Nœuds () .
Pour obtenir des valeurs:
declare @XML xml
set @XML =
'
<root>
<row>
<value>1</value>
</row>
<row>
<value>2</value>
</row>
</root>
'
select T.N.value('value[1]', 'int')
from @XML.nodes('/root/row') as T(N)
Résultat:
(No column name)
1
2
Pour obtenir le XML entier:
select T.N.query('.')
from @XML.nodes('/root/row') as T(N)
Résultat:
(No column name)
<row><value>1</value></row>
<row><value>2</value></row>