using OfficeOpenXml.Table;
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
private const string TestXml =@"<cfdi:Comprobante xmlns:cfdi=""http://www.sat.gob.mx/cfd/3"" xmlns:nomina12=""http://www.sat.gob.mx/nomina12"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:schemaLocation=""http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd"" Version=""3.3"" Folio=""7148442022"" Fecha=""2019-02-27T17:18:24"" Sello=""NHa3sARDgFxJJTzVntHNKIHJMCCLphp4bF7/9XezFxjEaHSs8rHSJhq4aYos1YdrhkTdcSV1rvHiPpcw7wjNWhWJOUkAAXs6Sb+FL0JQOdjKzA4HTD6qrLinTYSIbnDVj8CZguVc1MyX5vErOwIlmdLYSszxWaQE64Q46Lvb3Bd9p6vw9sEb6x/WIStHo0aYyXJE3oXhJgZohsvWnrQnHvc3CdD9aRjpGfig4D0bhs/X6bwmx50N8/B7JIiVNKl2L9x4be1ckzZ0KQp/Rvw0BpFwu6A68zty6Dt6paGOJAAGTOc4X7hFvXEmzrLRUvIgiSF4r/lhvfvJCuQ1cBCEfg=="" FormaPago=""99"" NoCertificado=""00001000000409945053"" Certificado=""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"" SubTotal=""74447.91"" Descuento=""4447.91"" Moneda=""MXN"" TipoCambio=""1"" Total=""70000.00"" TipoDeComprobante=""N"" MetodoPago=""PUE"" LugarExpedicion=""14210"">
<cfdi:Emisor Rfc=""IVI101202C75"" Nombre=""Impulsora Villosa SAde CV"" RegimenFiscal=""601""/>
<cfdi:Receptor Rfc=""PAVA770422SX6"" Nombre=""JOSE ALBERTO PALMA VEGA"" UsoCFDI=""P01""/>
<cfdi:Concepto ClaveProdServ=""84111505"" Cantidad=""1"" ClaveUnidad=""ACT"" Descripcion=""Pago de nómina"" ValorUnitario=""74447.91"" Importe=""74447.91"" Descuento=""4447.91""/>
<tfd:TimbreFiscalDigital xmlns:tfd=""http://www.sat.gob.mx/TimbreFiscalDigital"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:schemaLocation=""http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/timbrefiscaldigital/TimbreFiscalDigitalv11.xsd"" Version=""1.1"" UUID=""9D42FB62-6E8C-410F-AB43-66F245E4AD95"" FechaTimbrado=""2019-02-27T17:31:13"" RfcProvCertif=""STB080508339"" SelloCFD=""NHa3sARDgFxJJTzVntHNKIHJMCCLphp4bF7/9XezFxjEaHSs8rHSJhq4aYos1YdrhkTdcSV1rvHiPpcw7wjNWhWJOUkAAXs6Sb+FL0JQOdjKzA4HTD6qrLinTYSIbnDVj8CZguVc1MyX5vErOwIlmdLYSszxWaQE64Q46Lvb3Bd9p6vw9sEb6x/WIStHo0aYyXJE3oXhJgZohsvWnrQnHvc3CdD9aRjpGfig4D0bhs/X6bwmx50N8/B7JIiVNKl2L9x4be1ckzZ0KQp/Rvw0BpFwu6A68zty6Dt6paGOJAAGTOc4X7hFvXEmzrLRUvIgiSF4r/lhvfvJCuQ1cBCEfg=="" SelloSAT=""ETLGzwvNNbHOIVf6+poNxUSOtvOIGq0CJYR4DWVmH9u3CxDd8iXPIjLJzQk1motEhI2VW0gTSn6+gGTFbZv3bmTFEX/lrio4Ac/pKb2Gc9v+THHO5yxPzIHDtXRzOirY1RbiwgK22KnLMnJ+bcCkdJLn008rgjbA/LZ2H8X2Sj7zUQQxntC6+5LgC9jB11OHc4ZB6hbxJDWXGG9vEJrv01IFX3apR60fMDGhn6/bhTD/ZPIv6QInCRVVF535Gu64fj6f0g/888cfNSPcLYFFGNQfNVI83ZAACTsPPfFslrgIkXmz3R4N55sdYmz6aaz9kDELmYrK5J3M2dtzxwB6CQ=="" NoCertificadoSAT=""00001000000404341938""/>
<nomina12:Nomina Version=""1.2"" TipoNomina=""E"" FechaPago=""2019-02-27"" FechaInicialPago=""2019-02-18"" FechaFinalPago=""2019-02-24"" NumDiasPagados=""4.000"" TotalPercepciones=""6613.60"" TotalDeducciones=""155.99"" TotalOtrosPagos=""816.05"">
<nomina12:Emisor RegistroPatronal=""Y6454845105""/>
<nomina12:Receptor Curp=""PAVA770422HGRLGL01"" NumSeguridadSocial=""72017710749"" FechaInicioRelLaboral=""2006-07-31"" Antigüedad=""P653W"" TipoContrato=""01"" Sindicalizado=""No"" TipoJornada=""01"" TipoRegimen=""02"" NumEmpleado=""27824"" Departamento=""DISTRIBUCION ACAPULCO"" Puesto=""Chofer de Torton"" RiesgoPuesto=""3"" PeriodicidadPago=""99"" Banco=""014"" CuentaBancaria=""56721093013"" SalarioBaseCotApor=""344.6"" SalarioDiarioIntegrado=""243.83"" ClaveEntFed=""DIF""/>
<nomina12:Percepciones TotalSueldos=""6613.60"" TotalGravado=""6085.66"" TotalExento=""527.94"">
<nomina12:Percepcion TipoPercepcion=""001"" Clave=""100"" Concepto=""Sueldo"" ImporteGravado=""896.72"" ImporteExento=""0.00""/>
<nomina12:Percepcion TipoPercepcion=""002"" Clave=""170"" Concepto=""Aguinaldo"" ImporteGravado=""0.00"" ImporteExento=""51.56""/>
<nomina12:Percepcion TipoPercepcion=""005"" Clave=""582"" Concepto=""Fondo de Ahorro Proporcional"" ImporteGravado=""0.00"" ImporteExento=""89.67""/>
<nomina12:Percepcion TipoPercepcion=""021"" Clave=""126"" Concepto=""Prima Vacacional"" ImporteGravado=""0.00"" ImporteExento=""386.71""/>
<nomina12:Percepcion TipoPercepcion=""038"" Clave=""150"" Concepto=""Incentivo 1"" ImporteGravado=""55.22"" ImporteExento=""0.00""/>
<nomina12:Percepcion TipoPercepcion=""038"" Clave=""195"" Concepto=""Vacaciones proporcionales"" ImporteGravado=""1546.84"" ImporteExento=""0.00""/>
<nomina12:Percepcion TipoPercepcion=""038"" Clave=""196"" Concepto=""Vacaciones pendientes anteriores"" ImporteGravado=""3586.88"" ImporteExento=""0.00""/>
<nomina12:Deducciones TotalOtrasDeducciones=""34.40"" TotalImpuestosRetenidos=""121.59"">
<nomina12:Deduccion TipoDeduccion=""001"" Clave=""570"" Concepto=""IMSS Enf y Mat"" Importe=""18.88""/>
<nomina12:Deduccion TipoDeduccion=""001"" Clave=""571"" Concepto=""IMSS Ces y Vejez"" Importe=""15.51""/>
<nomina12:Deduccion TipoDeduccion=""002"" Clave=""552"" Concepto=""ISR Finiquito Partes proporcionales"" Importe=""121.59""/>
<nomina12:Deduccion TipoDeduccion=""071"" Clave=""DSUB"" Concepto=""Ajuste centavo Subsidio causado"" Importe=""0.01""/>
<nomina12:OtroPago TipoOtroPago=""999"" Clave=""450"" Concepto=""Liquidacion Fondo de Ahorro Empleado"" Importe=""408.02""/>
<nomina12:OtroPago TipoOtroPago=""999"" Clave=""453"" Concepto=""Liquidacion Fondo de Ahorro Empresa"" Importe=""408.02""/>
<nomina12:OtroPago TipoOtroPago=""002"" Clave=""SEAP"" Concepto=""SUBSIDIO PARA EMPLEO APLICADO"" Importe=""0.01"">
<nomina12:SubsidioAlEmpleo SubsidioCausado=""294.63""/>
<nomina12:Nomina Version=""1.2"" TipoNomina=""E"" FechaPago=""2019-02-27"" FechaInicialPago=""2019-02-18"" FechaFinalPago=""2019-02-24"" NumDiasPagados=""4.000"" TotalPercepciones=""67018.26"" TotalDeducciones=""4291.92"">
<nomina12:Receptor Curp=""PAVA770422HGRLGL01"" TipoContrato=""99"" Sindicalizado=""No"" TipoJornada=""01"" TipoRegimen=""13"" NumEmpleado=""27824"" Departamento=""DISTRIBUCION ACAPULCO"" Puesto=""Chofer de Torton"" PeriodicidadPago=""99"" Banco=""014"" CuentaBancaria=""56721093013"" SalarioBaseCotApor=""344.6"" ClaveEntFed=""DIF""/>
<nomina12:Percepciones TotalSeparacionIndemnizacion=""67018.26"" TotalGravado=""59414.16"" TotalExento=""7604.10"">
<nomina12:Percepcion TipoPercepcion=""025"" Clave=""191"" Concepto=""Gratificacion por Convenio"" ImporteGravado=""59414.16"" ImporteExento=""7604.10""/>
<nomina12:SeparacionIndemnizacion TotalPagado=""67018.26"" NumAñosServicio=""13"" UltimoSueldoMensOrd=""6725.40"" IngresoAcumulable=""6725.40"" IngresoNoAcumulable=""52688.76""/>
<nomina12:Deducciones TotalImpuestosRetenidos=""4291.92"">
<nomina12:Deduccion TipoDeduccion=""002"" Clave=""551"" Concepto=""ISR por indemnizacion"" Importe=""4291.92""/>
public static void Main()
Console.WriteLine("Hello World");
public static void leer(string archivo)
StringBuilder result = new StringBuilder();
XDocument xdoc = XDocument.Parse(TestXml);
XNamespace cfdi = "http://www.sat.gob.mx/cfd/3";
string folio = xdoc.Element(cfdi + "Comprobante").Attribute("Folio").Value;
var lv1s = from lvl in xdoc.Descendants(cfdi + "Comprobante")
Sello = lvl.Attribute("Sello").Value,
ChildEmisor = from e in lvl.Descendants(cfdi + "Emisor")
RFC = e.Attribute("Rfc").Value,
Nombre = e.Attribute("Nombre").Value,
RegimenFiscal = e.Attribute("RegimenFiscal").Value
ChildReceptor = from r in lvl.Descendants(cfdi + "Receptor")
RFC = r.Attribute("Rfc").Value,
Nombre = r.Attribute("Nombre").Value,
UsoCFDI = r.Attribute("UsoCFDI").Value,
ChildConcepts = from r in lvl.Descendants(cfdi + "Conceptos")
ChildConcept = from c in r.Descendants(cfdi + "Concepto")
ClaveProdServ = c.Attribute("ClaveProdServ").Value,
Cantidad = c.Attribute("Cantidad").Value,
ClaveUnidad = c.Attribute("ClaveUnidad").Value,
Unidad = c.Attribute("Unidad").Value
var d = from x in lv1s.ToList().Select(c => c.ChildEmisor).ToList()
Sello = lv1s.Select(f => f.Sello).FirstOrDefault(),
rfcE = x.Select(g => g.RFC).FirstOrDefault(),
rfcR = lv1s.Select(c => c.ChildReceptor.ToList().Select(o => o.RFC).FirstOrDefault()).FirstOrDefault()
Export(archivo, d.ToList());
private static void Export(string FileName, IEnumerable<object> list)
var lista = list.Cast<Object>().ToList();
string filePath = "C:\\XML\\Articho.xlsx";
FileInfo file = new FileInfo(filePath);
ExcelPackage pck = new ExcelPackage(file);
ExcelWorksheet worksheet = pck.Workbook.Worksheets.Add("Hoja1");
worksheet.Cells.LoadFromCollection(lista,true);
FileInfo fi = new FileInfo(filePath);