vXMLWriter


([N1] Spicer) #1

Hola estimados,

Estoy haciendo unos webservices con Cirrus y necesito exportar datos via XML.
Uso vXMLWriter con la función que copio abajo. Al ejecutar, veo perfectamente un texto que parece XML, pero no es XML porque al abrirlo en el browser (recordar que es un webservice), veo un string, pero no un XML bien parseado.
Esto me complica al momento de leer los datos desde ASP.NET pues no lo reconoce como un XML ‘de verdad’.
¿Qué puedo hacer?

Muy agradecido,

ObtenerDatosVTA_LIN_DATOS_ADICIONALES: function (params) {
importClass(“VProcess”);
importClass( “VXmlWriter” );

		var PRC_DATOS_VTA_LIN_DATOS_ADICIONALES = new VProcess(theRoot);
		var NumeroRegistro;
		var SalidaXML;
	
		PRC_DATOS_VTA_LIN_DATOS_ADICIONALES.setProcess("4xjo1yl7.vca/PRC_DATOS_VTA_LIN_DATOS_ADICIONALES");
		PRC_DATOS_VTA_LIN_DATOS_ADICIONALES.setVar("VAR_ID_VTA", "1");
		if (PRC_DATOS_VTA_LIN_DATOS_ADICIONALES.exec())
		{
			
			var ListaResultados = PRC_DATOS_VTA_LIN_DATOS_ADICIONALES.result();
			var CantidadRegistros = ListaResultados.listSize();
			var ResultadoXML = new VXmlWriter (PRC_DATOS_VTA_LIN_DATOS_ADICIONALES.result());
			
			ResultadoXML.setAutoFormatting(0);
			ResultadoXML.setAutoFormattingIndent(0);
			ResultadoXML.addInitialTag("VTA_LIN_DATOS_ADICIONALES");
							
				// Genero el contenido del XML (todas las filas de VTA_LIN)
				ResultadoXML.setRowTag("VTA_LIN");
				ResultadoXML.addField("IdVTA_LIN", "ID");
				ResultadoXML.addField("TAG_FECHA_SALIDA", "FECHA_TOUR");
				ResultadoXML.addField("TAG_HORA_DE_PICKUP", "HORA_PICKUP");
				ResultadoXML.addField("TAG_LUGAR_PICKUP", "LUGAR_PICKUP");
			}		
		
		SalidaXML = ResultadoXML.writeToString();
		SalidaXML = SalidaXML.replace("\r\n","");
		return SalidaXML;

}

};


([N1] wikan) #2

Lo más probable es que el Content-Type devuelve sea “application/json” por eso mismo lo devuelve como plano.

cirrus.js está diseñado inicialmente para devolver JSON no xml. En las últimas modificaciones de Cristian añadio el render de xml.

Prueba a porner .xml al final de la url a la que llamas, siempre que uses el último cirrus de github claro.


([N1] Spicer) #3

Estimado Wikan,

Muy agradecido como siempre.