Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/12/2005, 19:05
pineda
 
Fecha de Ingreso: septiembre-2005
Mensajes: 73
Antigüedad: 19 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