Foros del Web » Programación para mayores de 30 ;) » Programación General »

Transformación en XSLT

Estas en el tema de Transformación en XSLT en el foro de Programación General en Foros del Web. Hola amigos, resulta que estoy desarrollando un programa en c#.net y ahi usan una transformación de xml para exportar una tabla a excel; el problema ...
  #1 (permalink)  
Antiguo 19/12/2005, 19:05
 
Fecha de Ingreso: septiembre-2005
Mensajes: 73
Antigüedad: 18 años, 7 meses
Puntos: 0
Transformación en XSLT

Hola amigos, resulta que estoy desarrollando un programa en c#.net y ahi usan una transformación de xml para exportar una tabla a excel; el problema es que los acentos y otros símbolos no me los considera como tal, me saca símbolos raros...

Bueno, la cuestión es que tampoco se mucho de este tema del xslt, no se si me podrían ayudar con mi problemilla y darme un poco mas de referencias para irme metiendo a este tema...

Si de algo sirve, les pongo el código del xslt:
Código:
private void CreateStylesheet(XmlTextWriter writer, string[] sHeaders, string[] sFileds, ExportFormat FormatType)
{
	try
	{
		// xsl:stylesheet
		string ns = "http://www.w3.org/1999/XSL/Transform";	
		writer.Formatting = Formatting.Indented;
		writer.WriteStartDocument( );			
		writer.WriteStartElement("xsl","stylesheet",ns);
		writer.WriteAttributeString("version","1.0");
		writer.WriteStartElement("xsl:output");
		writer.WriteAttributeString("method","text");
		writer.WriteAttributeString("version","4.0");
		writer.WriteAttributeString("encoding","ISO-8859-1");
		writer.WriteEndElement( );
	
		// xsl-template
		writer.WriteStartElement("xsl:template");
		writer.WriteAttributeString("match","/");
		// xsl:value-of for headers
		for(int i=0; i< sHeaders.Length; i++)
		{
			writer.WriteString("\"");
			writer.WriteStartElement("xsl:value-of");
			writer.WriteAttributeString("select", "'" + sHeaders[i] + "'");
			writer.WriteEndElement( ); // xsl:value-of
			writer.WriteString("\"");
			if (i != sFileds.Length - 1) writer.WriteString( (FormatType == ExportFormat.CSV ) ? "," : "	" );
				}
								
		// xsl:for-each
		writer.WriteStartElement("xsl:for-each");
		writer.WriteAttributeString("select","Export/Values");
		writer.WriteString("\r\n");				
		
		// xsl:value-of for data fields
		for(int i=0; i< sFileds.Length; i++)
		{					
			writer.WriteString("\"");
			writer.WriteStartElement("xsl:value-of");
			writer.WriteAttributeString("select", sFileds[i]);
			writer.WriteEndElement( ); // xsl:value-of
			writer.WriteString("\"");
			if (i != sFileds.Length - 1) writer.WriteString( (FormatType == ExportFormat.CSV ) ? "," : "	" );
				}
								
		writer.WriteEndElement( ); // xsl:for-each
		writer.WriteEndElement( ); // xsl-template
		writer.WriteEndElement( ); // xsl:stylesheet
		writer.WriteEndDocument( );							}
	catch(Exception Ex)
	{
		throw Ex;
	}
}
Gracias de antemano
__________________
Henry :-D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:26.