Foros del Web » Soporte técnico » Ayuda General »

Leer el archivo LCO(Lista de contryb en XML con LINQ , me da problemas el prefijo lco

Estas en el tema de Leer el archivo LCO(Lista de contryb en XML con LINQ , me da problemas el prefijo lco en el foro de Ayuda General en Foros del Web. Que tal colegas .... Quiero leer el XML de LCO que publica el SAT en http://stackoverflow.com/questions/6...nq-to-read-xml usando la técnica de LINQ El problema es que ...
  #1 (permalink)  
Antiguo 09/09/2013, 12:02
 
Fecha de Ingreso: agosto-2010
Mensajes: 52
Antigüedad: 14 años, 3 meses
Puntos: 12
Leer el archivo LCO(Lista de contryb en XML con LINQ , me da problemas el prefijo lco

Que tal colegas ....

Quiero leer el XML de LCO que publica el SAT en http://stackoverflow.com/questions/6...nq-to-read-xml usando la técnica de LINQ
El problema es que este XML trae el prefijo “lco” en cada nodo y no se como formar el XName para acensarlo.

Con un editor puedo quitarle el prefijo “lco” al XML y listo lo puedo leer con LINQ de hecho les anexo
1 el código fuente de como hago el Query al LCO.xml y si funciona pero sin que traiga el prefijo
2. El XML con el prefijo lco
3. El mismo XML pero sin el prefijo lco

Pero la idea no es estar quitando este prefijo “lco” , sino corregir el XName que se usa en la sentencia xdoc.Descendants("Certificado") y en la xdoc.Descendants("Contribuyente")

Mi pregunta es como acceso los nodos que traen el prefijo lco ( lco:Certificado y lco:Certificado ) usando LINQ ¿???

Saludos
Halcón Divino
Monterrey N.L.
México.

Programa en C# que lee el XML sin prefijo usando LINQ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq;
using System.Xml.Linq;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
String RutaLCO = @"C:\ProyectosWeb\DownLoadLCO\Datos\";
string xmlLCO = RutaLCO + "TestX.XML";


//Cargamos XML
XDocument xdoc = XDocument.Load(xmlLCO);

//Query
var LCO = from Contribuyente in xdoc.Descendants("Contribuyente")
select new
{
RFC = Contribuyente.Attribute("RFC").Value,
Certificados = Contribuyente.Descendants("Certificado")
};

//Resultado
foreach (var Contribuyente in LCO)
{
Console.WriteLine(Contribuyente.RFC);

foreach (var Certificado in Contribuyente.Certificados)
{
Console.WriteLine(" " + Certificado.Attribute("noCertificado").Value);
Console.WriteLine(" " + Certificado.Attribute("ValidezObligaciones").Value );
Console.WriteLine(" " + Certificado.Attribute("EstatusCertificado").Value) ;
Console.WriteLine(" " + Certificado.Attribute("FechaInicio").Value);
Console.WriteLine(" " + Certificado.Attribute("FechaFinal").Value);

}
}


}
}
}

Ejemplo de LCO con el prefijo lco en cada nodo

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<lco:LCO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:lco="http:/www.sat.gob.mx/cfd/LCO"
Fecha="2012-06-20T00:11:14"
xsi:schemaLocation="http:/www.sat.gob.mx/cfd/LCO
LCO.xsd">
<lco:Contribuyente RFC="OECS640425710">
<lco:Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000102409569" FechaFinal="2012-12-15T16:47:20" FechaInicio="2010-12-16T16:47:20">
</lco:Certificado>
<lco:Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000102734360" FechaFinal="2013-01-31T17:20:51" FechaInicio="2011-02-01T17:20:51">
</lco:Certificado>
<lco:Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000102734826" FechaFinal="2013-01-31T17:41:22" FechaInicio="2011-02-01T17:41:22">
</lco:Certificado>
</lco:Contribuyente>
<lco:Contribuyente RFC="OECS4211031T1">
<lco:Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000102100644" FechaFinal="2012-10-19T23:28:04" FechaInicio="2010-10-20T23:28:04">
</lco:Certificado>
</lco:Contribuyente>
<lco:Contribuyente RFC="OECS570104RA2">
<lco:Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000102411189" FechaFinal="2012-12-15T17:43:14" FechaInicio="2010-12-16T17:43:14">
</lco:Certificado>
</lco:Contribuyente>
<lco:Contribuyente RFC="OECS610609RS8">
<lco:Certificado
ValidezObligaciones="1" EstatusCertificado="C" noCertificado="00001000000101177216" FechaFinal="2012-02-11T15:35:49" FechaInicio="2010-02-11T15:35:49">
</lco:Certificado>
<lco:Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000200438039" FechaFinal="2016-02-29T00:02:55" FechaInicio="2012-02-29T00:02:55">
</lco:Certificado>
<lco:Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000200423983" FechaFinal="2016-02-27T20:54:58" FechaInicio="2012-02-27T20:54:58">
</lco:Certificado>
</lco:Contribuyente>
</lco:LCO>



Mismo ejemplo pero sin el prefijo lco

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<LCO xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:lco="http:/www.sat.gob.mx/cfd/LCO"
Fecha="2012-06-20T00:11:14"
xsi:schemaLocation="http:/www.sat.gob.mx/cfd/LCO
LCO.xsd">
<Contribuyente RFC="OECS640425710">
<Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000102409569" FechaFinal="2012-12-15T16:47:20" FechaInicio="2010-12-16T16:47:20">
</Certificado>
<Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000102734360" FechaFinal="2013-01-31T17:20:51" FechaInicio="2011-02-01T17:20:51">
</Certificado>
<Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000102734826" FechaFinal="2013-01-31T17:41:22" FechaInicio="2011-02-01T17:41:22">
</Certificado>
</Contribuyente>
<Contribuyente RFC="OECS4211031T1">
<Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000102100644" FechaFinal="2012-10-19T23:28:04" FechaInicio="2010-10-20T23:28:04">
</Certificado>
</Contribuyente>
<Contribuyente RFC="OECS570104RA2">
<Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000102411189" FechaFinal="2012-12-15T17:43:14" FechaInicio="2010-12-16T17:43:14">
</Certificado>
</Contribuyente>
<Contribuyente RFC="OECS610609RS8">
<Certificado
ValidezObligaciones="1" EstatusCertificado="C" noCertificado="00001000000101177216" FechaFinal="2012-02-11T15:35:49" FechaInicio="2010-02-11T15:35:49">
</Certificado>
<Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000200438039" FechaFinal="2016-02-29T00:02:55" FechaInicio="2012-02-29T00:02:55">
</Certificado>
<Certificado
ValidezObligaciones="1" EstatusCertificado="A" noCertificado="00001000000200423983" FechaFinal="2016-02-27T20:54:58" FechaInicio="2012-02-27T20:54:58">
</Certificado>
</Contribuyente>
</LCO>

Etiquetas: linq, prefijo, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:08.