SQL - Buscar Nodos XML en Sql

 
Vista:

Buscar Nodos XML en Sql

Publicado por Alfoonso De Leon (1 intervención) el 24/09/2020 23:14:52
Saludos.
Tengo un Xml, y deseo buscar el valor por ejemplo de <Id_Cli>36170</Id_Cli>
He intentado de varias formas, por ejemplo:
SELECT T.c.query('.') AS result FROM @Xml.nodes('/DatosCliente/DatosCliente1') T(c) donde el Xml esta guardado en @Xml
Pero no estoy seguro aqui como va el arbol de Nodos.
Cualquier ayuda se agradece.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <Ver_CliResponse xmlns="http://tempuri.org/">
      <Ver_CliResult>
        <xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
          <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
            <xs:complexType>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="DatosCliente">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="Id_Cli" type="xs:int" minOccurs="0" />
                      <xs:element name="NumRfc" type="xs:string" minOccurs="0" />
                      <xs:element name="TipPer" type="xs:string" minOccurs="0" />
                      <xs:element name="RazSoc" type="xs:string" minOccurs="0" />
                      <xs:element name="ApePat" type="xs:string" minOccurs="0" />
                      <xs:element name="ApeMat" type="xs:string" minOccurs="0" />
                      <xs:element name="Nombre" type="xs:string" minOccurs="0" />
                      <xs:element name="CliEma" type="xs:string" minOccurs="0" />
                      <xs:element name="Contac" type="xs:string" minOccurs="0" />
                      <xs:element name="TelCon" type="xs:string" minOccurs="0" />
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:choice>
            </xs:complexType>
          </xs:element>
        </xs:schema>
        <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
          <NewDataSet xmlns="">
            <DatosCliente diffgr:id="DatosCliente1" msdata:rowOrder="0">
              <Id_Cli>36170</Id_Cli>
              <NumRfc>ABCD123456AB1</NumRfc>
              <TipPer>F</TipPer>
              <RazSoc>ALFONSO DE LEON ROMERO</RazSoc>
            </DatosCliente>
          </NewDataSet>
        </diffgr:diffgram>
      </Ver_CliResult>
    </Ver_CliResponse>
  </soap:Body>
</soap:Envelope>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Buscar Nodos XML en Sql

Publicado por Isaias (1921 intervenciones) el 25/09/2020 16:22:01
En la red existe un ejercicio al respecto, teniendo el siguiente archivo (roles)

<root>
<role>Alpha</role>
<role>Beta</role>
<role>Gamma</role>
</root>

"Me gustaría enumerar todas las filas que tienen un rol específico en ellas. Este rol pasó por parámetro."

1
2
3
4
5
6
select
  Roles
from
  MyTable
where
  Roles.value('(/root/role)[1]', 'varchar(max)') like 'StringToSearchFor'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar