Tengo una nota XML grande con muchos nodos.seleccionando el nodo xml individual usando SQL
¿Hay alguna manera de seleccionar solo un nodo y todos sus contenidos del XML más grande?
estoy utilizando SQL 2005
Tengo una nota XML grande con muchos nodos.seleccionando el nodo xml individual usando SQL
¿Hay alguna manera de seleccionar solo un nodo y todos sus contenidos del XML más grande?
estoy utilizando SQL 2005
Se debe utilizar la query() Method si desea obtener una parte de su XML.
declare @XML xml
set @XML =
'
<root>
<row1>
<value>1</value>
</row1>
<row2>
<value>2</value>
</row2>
</root>
'
select @XML.query('/root/row2')
Resultado:
<row2>
<value>2</value>
</row2>
Si desea que el valor de un nodo específico que debe utilizar value() Method.
select @XML.value('(/root/row2/value)[1]', 'int')
Resultado:
2
Actualización:
Si desea triturar el código XML a varias filas que utiliza nodes() Method.
valores para obtener:
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)
Resultado:
(No column name)
1
2
Para obtener todo el XML:
select T.N.query('.')
from @XML.nodes('/root/row') as T(N)
Resultado:
(No column name)
<row><value>1</value></row>
<row><value>2</value></row>
nice, ¿y si cada uno de los nodos de la fila fuera solo y quisiera obtener cada nodo de fila secuencialmente? –
kacalapy
Quiero los resultados ( ) no es un número entero, pero quiero obtener row1 xml, y luego row2 ... para todas las filas –
kacalapy
@kacalapy - Respuesta actualizada con la forma de triturar XML en varias filas. –