Una forma que se me ocurre para construir la cadena original es leer o extractar todos los valores de los atributos del archivo XML y manualmente formar la cadena original deacuerdo al anexo20. QUE GORRO !!!
Hay otra manera mas facil y rapida ??? ... y para que sirve los Archivos de estructura de la Cadena original ""cadenaoriginal 3 2.xslt"" ??? con esto no genero la cadena original mas fasilmente y de ser así como lo aria ???
Saludos
Halcón Divino.

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03
.
Generar la cadena original tomando como input el archivo XML
-
- Mensajes: 164
- Registrado: Vie Nov 25, 2011 3:12 pm
Generar la cadena original tomando como input el archivo XML
Saludos
Halcón Divino
Monterrey
Nuevo León
México
Halcón Divino
Monterrey
Nuevo León
México
- Dado
- Mensajes: 15980
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: Generar la cadena original tomando como input el archivo
Pues aqui en el foro publique hace un chorro como hacerlo en Delphi
Y otra forma es usando el xsltproc con el archivo que mencionas
Ya sabes....busca "xsltproc"
Y otra forma es usando el xsltproc con el archivo que mencionas
Ya sabes....busca "xsltproc"
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 22
- Registrado: Mié Ago 10, 2011 9:58 am
Re: Generar la cadena original tomando como input el archivo
Una manera fácil y rápida de hacerlo utilizando, precisamente, el archivo cadenaoriginal_3_2.xslt es agregando la linea siguiente en el segundo renglón del archivo XML:
De esta manera quedaria así (ejemplo con CFD):
Naturalmente para esto hay que poner el archivo .xslt en el mismo directorio, o tal vez poner la ruta completa al archivo en el servidor del SAT en el atributo href.
Finalmente hay que arrastrar este archivo ligeramente modificado al Internet Explorer (en chrome no sirve así directo del disco duro). Y listo, cadena original.
El único "detalle" es que en IE sale en un solo renglón.
Código: Seleccionar todo
<?xml-stylesheet type="text/xsl" href="cadenaoriginal_3_2.xslt"?>
Código: Seleccionar todo
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cadenaoriginal_2_2.xslt"?>
<Comprobante .... />
Finalmente hay que arrastrar este archivo ligeramente modificado al Internet Explorer (en chrome no sirve así directo del disco duro). Y listo, cadena original.
El único "detalle" es que en IE sale en un solo renglón.
-
- Mensajes: 164
- Registrado: Vie Nov 25, 2011 3:12 pm
Re: Generar la cadena original tomando como input el archivo
LISTO YA PUDE GENERAR LA CADENA !!!! ... Esta refasil de haber sabido desde el inicio de mis desarrollos la hubiera aplicado.
Aquí les como se hace
Para C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Xsl;
string ArchXSLT = @"C:\Validador\cadenaoriginal_3_0.xslt";
string ArchXML = @"C:\Validador\XNA0101167H0_A_0269_Timbradov30.XML";
string ArchCadena = @"C:\Validador\CadenaOriginal.Txt";
XslCompiledTransform transformador = new XslCompiledTransform();
transformador.Load(ArchXSLT);
transformador.Transform(ArchXML, ArchCadena);
Para VB
Dim transformador As New Xml.Xsl.XslCompiledTransform()
transformador.Load(empresa("ruta") & "\XSLTs\cadenaoriginal_TFD_1_0.xslt")
transformador.Transform(pathXml, fileCadena)
Para Delphi
Var
Cadena:String;
begin
XSLPageProducer1.FileName := 'C:\CFD\xml\cadenaoriginal_2_0.xslt';
XSLPageProducer1.XMLData := XMLDoc;
Cadena:= XSLPageProducer1.Content;
Saludos
Halcón Divino
Aquí les como se hace
Para C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Xsl;
string ArchXSLT = @"C:\Validador\cadenaoriginal_3_0.xslt";
string ArchXML = @"C:\Validador\XNA0101167H0_A_0269_Timbradov30.XML";
string ArchCadena = @"C:\Validador\CadenaOriginal.Txt";
XslCompiledTransform transformador = new XslCompiledTransform();
transformador.Load(ArchXSLT);
transformador.Transform(ArchXML, ArchCadena);
Para VB
Dim transformador As New Xml.Xsl.XslCompiledTransform()
transformador.Load(empresa("ruta") & "\XSLTs\cadenaoriginal_TFD_1_0.xslt")
transformador.Transform(pathXml, fileCadena)
Para Delphi
Var
Cadena:String;
begin
XSLPageProducer1.FileName := 'C:\CFD\xml\cadenaoriginal_2_0.xslt';
XSLPageProducer1.XMLData := XMLDoc;
Cadena:= XSLPageProducer1.Content;
Saludos
Halcón Divino
Saludos
Halcón Divino
Monterrey
Nuevo León
México
Halcón Divino
Monterrey
Nuevo León
México
-
- Mensajes: 11
- Registrado: Mié Ago 08, 2012 9:18 am
Re: Generar la cadena original tomando como input el archivo
En este caso ArchXSLT...vendría siendo la versión que se baja del SAT?... en mi caso entonces seria versión 3.2...
el string ArchXML.. viene siendo?... y de donde puedo sacarlo?
y el string ArchCadena... que es?..
podrías porfavor explicarme?...
Gracias...
el string ArchXML.. viene siendo?... y de donde puedo sacarlo?
y el string ArchCadena... que es?..
podrías porfavor explicarme?...
Gracias...
-
- Mensajes: 158
- Registrado: Mié Ene 11, 2012 2:08 pm
- Contactar:
Re: Generar la cadena original tomando como input el archivo
string ArchXSLT = @"C:\Validador\cadenaoriginal_3_0.xslt";
string ArchXML = @"C:\Validador\XNA0101167H0_A_0269_Timbradov30.XML";
string ArchCadena = @"C:\Validador\CadenaOriginal.Txt";
XslCompiledTransform transformador = new XslCompiledTransform();
transformador.Load(ArchXSLT);
transformador.Transform(ArchXML, ArchCadena);
Por lo que se aprecia:
archXSLT es el archivo de transformacion (XSLT) que se usa para PROCESAR archivos .XML en base a los nodos.
archXML es el archivo con tu XML ya armado (obviamente sin el nodo sello ya q todavia estas generando la cadena original.
archCadena: Es el archivo donde se depositara la CADENA ORIGINAL resultante de "parsear" el XML con el XSLT.
Otra opcion era NO grabar un archivo de texto, sino recuperar la cadena en una variable de texto como resultado de la funcion TRANSFORM (toString), pero ya es cuestion de cada quien.
Para q te des una idea, prueba a INCLUIR esto con NOTEPAD directo en tu XML en la parte superior y veras como al intentar abrirlo.. te mostrara la CADENA ORIGINAL!!:
<?xml-stylesheet type="text/xsl" href="cadenaoriginal_2_2.xslt"?><?xml version="1.0" encoding="UTF-8"?>
string ArchXML = @"C:\Validador\XNA0101167H0_A_0269_Timbradov30.XML";
string ArchCadena = @"C:\Validador\CadenaOriginal.Txt";
XslCompiledTransform transformador = new XslCompiledTransform();
transformador.Load(ArchXSLT);
transformador.Transform(ArchXML, ArchCadena);
Por lo que se aprecia:
archXSLT es el archivo de transformacion (XSLT) que se usa para PROCESAR archivos .XML en base a los nodos.
archXML es el archivo con tu XML ya armado (obviamente sin el nodo sello ya q todavia estas generando la cadena original.
archCadena: Es el archivo donde se depositara la CADENA ORIGINAL resultante de "parsear" el XML con el XSLT.
Otra opcion era NO grabar un archivo de texto, sino recuperar la cadena en una variable de texto como resultado de la funcion TRANSFORM (toString), pero ya es cuestion de cada quien.
Para q te des una idea, prueba a INCLUIR esto con NOTEPAD directo en tu XML en la parte superior y veras como al intentar abrirlo.. te mostrara la CADENA ORIGINAL!!:
<?xml-stylesheet type="text/xsl" href="cadenaoriginal_2_2.xslt"?><?xml version="1.0" encoding="UTF-8"?>
-
- Mensajes: 2
- Registrado: Mié Sep 25, 2013 4:05 pm
Re: Generar la cadena original tomando como input el archivo
Pueden ayudar pasando el codigo desde 0 y las referencia ya que e buscado , el unico paso que me falta es hacer al transofmacion de xslt desde visual basic 6
Gracias y saludos ..
Gracias y saludos ..
-
- Mensajes: 372
- Registrado: Mié Ago 11, 2010 1:55 am
- Ubicación: México, D.F.
- Contactar:
Re: Generar la cadena original tomando como input el archivo
Una sencilla busqueda en este foro (y en otros) y tendrás varias respuestas concretas a lo que quieres...
Todo lo que no es dado es perdido