Imagen

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.


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

La factura esta basada en XML, independiente del lenguaje de programacion todos debemos saber acerca de esta tecnologia
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
Halcon Divino
Mensajes: 164
Registrado: Vie Nov 25, 2011 3:12 pm

Generar la cadena original tomando como input el archivo XML

Mensajepor Halcon Divino » Mié Jun 06, 2012 7:53 pm

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.
Saludos
Halcón Divino

Monterrey
Nuevo León
México

Avatar de Usuario
Dado
Mensajes: 15842
Registrado: Mar Jul 06, 2010 7:56 pm

Re: Generar la cadena original tomando como input el archivo

Mensajepor Dado » Mié Jun 06, 2012 8:22 pm

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"
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

naringas
Mensajes: 22
Registrado: Mié Ago 10, 2011 9:58 am

Re: Generar la cadena original tomando como input el archivo

Mensajepor naringas » Jue Jun 07, 2012 9:36 am

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:

Código: Seleccionar todo

<?xml-stylesheet type="text/xsl" href="cadenaoriginal_3_2.xslt"?>


De esta manera quedaria así (ejemplo con CFD):

Código: Seleccionar todo

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cadenaoriginal_2_2.xslt"?>
<Comprobante .... />


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.

Halcon Divino
Mensajes: 164
Registrado: Vie Nov 25, 2011 3:12 pm

Re: Generar la cadena original tomando como input el archivo

Mensajepor Halcon Divino » Jue Jun 07, 2012 4:58 pm

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
Saludos
Halcón Divino

Monterrey
Nuevo León
México

mdorantes
Mensajes: 11
Registrado: Mié Ago 08, 2012 9:18 am

Re: Generar la cadena original tomando como input el archivo

Mensajepor mdorantes » Jue Ago 09, 2012 4:09 pm

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...

jasistemas
Mensajes: 158
Registrado: Mié Ene 11, 2012 2:08 pm
Contactar:

Re: Generar la cadena original tomando como input el archivo

Mensajepor jasistemas » Lun Ago 13, 2012 2:20 pm

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"?>

Neto2004
Mensajes: 2
Registrado: Mié Sep 25, 2013 4:05 pm

Re: Generar la cadena original tomando como input el archivo

Mensajepor Neto2004 » Jue Sep 26, 2013 3:37 pm

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 ..

mauricio
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

Mensajepor mauricio » Jue Sep 26, 2013 9:57 pm

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


Volver a “XML”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 8 invitados