crear archivo .xml y poder ponerlo en mi servidor o descargarlo - Forum

Forum Navigation
You need to log in to create posts and topics.

crear archivo .xml y poder ponerlo en mi servidor o descargarlo

necesito crear un archivo con extension .xml con los elementos de un array, puedo hacerlo desde VisualNeoWeb?

Alguien podria ayudarme en esto?, se agradece desde ya

@gustavo1973 dependiendo de la complejidad de los elementos dentro del array y de la estructura que debe tener el archivo .xml puede ser desde relativamente sencillo a bastante complicado. ¿Puedes poner un ejemplo del tipo de datos que tiene el array y la estructura que esperas que tenga el .xml final?

Perdon, este es al archivo completo:

<?xml version="1.0" encoding="ISO-8859-1"?>
<envioCfe>
<idEmisor>2020</idEmisor>
<codSucursal>2</codSucursal>
<tipoComprobante>101</tipoComprobante>
<serie>A</serie>
<numero>?</numero>
<fechaEmision>20210121</fechaEmision>
<formaPago>1</formaPago>
<usuario>admin</usuario>
<password>e939ab8d828e7e0aea9092cbef4805890552eabc40f6267c13ad3b6934f4ba3d</password>
<xmlData>
<![CDATA[
<CFE>
<DatosGenerales>
<MntBruto>1</MntBruto>
<FchVenc>20210130</FchVenc>
</DatosGenerales>
<Receptor>
<TipoDocRecep>3</TipoDocRecep>
<CodPaisRecep>UY</CodPaisRecep>
<DocRecep>41986093</DocRecep>
<RznSocRecep></RznSocRecep>
<DirRecep> </DirRecep>
<CiudadRecep>Salto</CiudadRecep>
<DeptoRecep>Salto</DeptoRecep>
</Receptor>
<Detalle>
<Item>
<NroLinDet>1</NroLinDet>
<IndFact>3</IndFact>
<NomItem></NomItem>
<DescItem>Un producto</DescItem>
<Cantidad>1.00</Cantidad>
<UniMed>N/A</UniMed>
<PrecioUnitario>100</PrecioUnitario>
<MontoItem>100</MontoItem>
<DescuentoPct>0.00</DescuentoPct>
<DescuentoMonto>0.00</DescuentoMonto>
<RecargoPct>0.00</RecargoPct>
<RecargoMnt>0.00</RecargoMnt>
</Item>
</Detalle>
<Totales>
<TpoMoneda>UYU</TpoMoneda>
<CantLinDet>1</CantLinDet>
<MntNoGrv>0.00</MntNoGrv>
<MntIvaenSusp>0.00</MntIvaenSusp>
<MntNetoIvaTasaMin>0.00</MntNetoIvaTasaMin>
<MntNetoIvaTasaBasica>81.97</MntNetoIvaTasaBasica>
<IVATasaMin>10</IVATasaMin>
<IVATasaBasica>22</IVATasaBasica>
<MntIVATasaMin>0.00</MntIVATasaMin>
<MntImpuestoPer>0.00</MntImpuestoPer>
<MntExpoyAsim>0.00</MntExpoyAsim>
<MntIVATasaBasica>18.03</MntIVATasaBasica>
<MntTotal>100.00</MntTotal>
<MontoNF>0.00</MontoNF>
<MntPagar>100.00</MntPagar>
</Totales>
<Adenda>
</Adenda>
</CFE>
]]>
</xmlData>
</envioCfe>

 

@gustavo1973 ¿y como es tu array? ¿es un array de objetos recuperado de neoPhp?

Si, es un array que toma los datos de una base de datos a traves de Neophp

@gustavo1973 lo más fácil sería hacer algo como esto:

SetVar [archivoXML] '<?xml version="1.0" encoding="ISO-8859-1"?>\r\n'
SetVar [archivoXML] '[archivoXML]<envioCfe>\r\n'
SetVar [archivoXML] '[archivoXML]<idEmisor>[miArray(0).anio]</idEmisor>\r\n'
SetVar [archivoXML] '[archivoXML]<codSucursal>[miArray(0).sucursal]</codSucursal>\r\n'
SetVar [archivoXML] '[archivoXML]<tipoComprobante>[miArray(0).tipoComprobante]</tipoComprobante>\r\n'
...

Es decir generamos el código XML y lo vamos almacenando en una variable [archivoXML] que después podemos guardar en el dispositivo local con VarToLocalFile o enviar medianto neoPhp al servidor para guardarla en una base de datos o como un archivo independiente.

Fíjate que lo único que hago es sustituir los valores dentro del código XML por los que están almacenados en el Array [miArray]. En este caso he utilizado el primer elemento del Array [miArray(0)] pero puedes utilizar un LOOP e ir recorriendo todos los elementos guardando cada uno en un archivo diferente.

Saludos.

Ah, se me olvidaba. Los caracteres '\r\n' que pongo al final de cada linea, corresponden al salto de página para archivos de texto plano, como es el caso de los XML.

@luishp tengo el siguiente problema al intentar crear el archivo xml

una linea en particular al momento de generar el archivo hace que caiga toda mi aplicacion, :

SetVar [archivo] '[archivo]<![CDATA[\r\n'

Me compila en blanco la aplicacion con esa linea

Probe sustituyendo los caracteres pero mismo resultado

SetVar [archivo] '[archivo]<![#91]CDATA[#91]\r\n'

De que manera puedo hacerlo,

@gustavo1973 VisualNEO Web no incluye caracteres especiales preconfigurados pero añade soporte para UNICODE:

UnicodeToChar 91 [abreCorchete]
UnicodeToChar 93 [cierraCorchete]
SetVar [archivo] "[archivo]<![abreCorchete]CDATA[cierraCorchete]\r\n"

Saludos.