Esta es la primera de las clases para Xml. Nos permite generar un fichero Xml con el contenido de una lista.
Para empezar hay que contruir el objeto VXmlWriter con new pasandole como parametro un objeto de la clase VRegisterList.
El codec por defecto es “UTF-8″. Para cambiarlo por ejemplo a UTF-16, llamar a la funcion setCodec( “UTF-16″ ). Hay una lista de los codes disponibles más abajo.
Si no se usa la función setDocType(“mytype”) no se incluirá la cabecera opcional <!DOCTYPE mytype>.
Por defecto el texto es formateado con saltos de linea e indentación. Para cancelarlo usar la función setAutoFormatting( false ). Con la función setAutoFormattingIndent( n ) ajustamos el numero de espacios o tabs de indentación. Si usamos valores positivos para n representan espacios y si son negativos tabs. Por defecto la indentación son 4 espacios.
Con la función addInitialTag( “tag”) le añadimos uno o varios tags, llamando varias veces a la función, que envuelven a los registros de la lista. Lo normal es usar una con el nombre de la tabla.
Con la función setRowTag( “tag” ) le decimos la etiqueta que ha de envolver a cada registro. Si no se usa por defecto es “row”.
A continuación con las funciones addField( “tagCol”, “IDCOMPUESTOCAMPO”) y addFormula( “tagCol”, “Formula” ) le añadimos tantas columnas como queramos por registro.
Y ya solo nos queda llamar a la función writeFile( “file.xml” ); para que nos lo escriba en disco.
Funciones:
Constructor
- VXmlWriter( VRegisterList registerList );
Inicializacion
- void setCodec( String szCodecName );
- void setDocType( String szType );
- void setAutoFormatting( Boolean bSet );
- void setAutoFormattingIndent( Number nSpacesOrTabs );
- void addInitialTag( String szTag );
- void setRowTag( String szTag );
- void addField( String szTag, String szIdCampoCompuesto );
- void addFormula( String szTag, String szFormula );
Operaciones
- Boolean writeFile( String szPath );
- String writeToString();
Codec Names:
- Apple Roman
- Big5
- Big5-HKSCS
- CP949
- EUC-JP
- EUC-KR
- GB18030-0
- IBM 850
- IBM 866
- IBM 874
- ISO 2022-JP
- ISO 8859-1 to 10
- ISO 8859-13 to 16
- Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml
- JIS X 0201
- JIS X 0208
- KOI8-R
- KOI8-U
- MuleLao-1
- ROMAN8
- Shift-JIS
- TIS-620
- TSCII
- UTF-8
- UTF-16
- UTF-16BE
- UTF-16LE
- UTF-32
- UTF-32BE
- UTF-32LE
- Windows-1250 to 1258
- WINSAMI2
Ejemplos:
1: Exportar una lista a xml
var xml = new VXmlWriter( theRegisterListIn ); xml.setDocType( "myType" ); xml.addInitialTag( "Corredores" ); xml.setRowTag( "row" ); xml.addField( "Nombre", "NAME" ); xml.addField( "Equipo", "EQUIPO.NAME" ); xml.addField( "Pais", "PAIS.NAME" ); .... xml.writeFile( "filename.xml" );
Produce el siguiente fichero xml
2: Exportar una lista de cualquier tabla con todos sus campos
var xml = new VXmlWriter( theRegisterListIn );
xml.addInitialTag( theRegisterListIn.tableInfo().id() );
xml.setRowTag( "row" );
var ti = theRegisterListIn.tableInfo();
for (var col=0; col < ti.fieldCount(); ++col)
xml.addField( ti.fieldName(col), ti.fieldId(col) );
xml.writeFile( "filename.xml" );

Comentarios
Simplemente genial!!!
+ 1
Esto está que arde… Amigos, este próximo año vamos a descubrir otra herramienta de desarrollo. Lo siento por los que llevan tanto tiempo peleando para dominar v7. El vArquitecto está construyendo otra desde dentro, desde las entrañas de la primera versión… yo diría que se acaba de abrir la Caja de Pandora y se va a montar el lío gordo… esto no me lo pierdo por nada… jajajaja
Si la primera era buena, lo que se vislumbra de la segunda… es la bomba…
Vaya currada te estas pegando
Esta claro que javascript es lo que se usara en velneo en cuanto este disponible.
Sigue asi.
No se te olvide el tema del Encoding (a la hora de guardar el fichero). Es importante que podamos decidir en ejecución en que codificación queremos guardar el fichero.
Buen trabajo.
Estaría bien poder decidir si un campo se formatea como elemento del elemento padre o como atributo.
También estaría bien que podamos añadir atributos a cualquier elemento del fichero a generar.
@jorgehontoria El encoding con la función setCodec. Hasta he dejado una lista de los nombres de los codec disponibles. En cuanto a los atributos lo documentaré en el siguiente post de xml
Muchas gracias… entendí mal el tema del setCodec, pensé que solo cambiaba el literal del header.
Trackbacks
[...] Generar y parsear XML, que queda completamente resuelta con la integración de JavaScript y las nuevas funciones creadas especialmente para ello: vXmlWriter. [...]