me mataste... yo todavía estoy con VS2003 y el 1.1 XmlWriterSettings Class Note: This class is new in the .NET Framework version 2.0.
-----Mensaje original----- De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Damian Janowski Enviado el: miércoles, 18 de octubre de 2006 20:35 Para: puntonet List Member Asunto: [puntonet] Serializacion XML sin <?xml ... ?> Hola Pata, perdón por no ahondar en la solución :) te mando mi clase, en C#. es muy simple, supongo que se puede traducir fácilmente a VB. Lo que tiene de bueno es que usa generics ;) ahora estoy viendo cómo sacar los namespaces. public static class Serializer { public static string Serialize<T>(T serializable) { XmlSerializer serializer = new XmlSerializer(typeof(T)); StringWriter buffer = new StringWriter(); XmlWriter writer = XmlWriter.Create(buffer, SimpleXmlWriterSettings); try { serializer.Serialize(writer, serializable); return buffer.ToString(); } catch { // TODO: Do something. return String.Empty; } finally { if (writer != null) writer.Close(); } } public static T Deserialize<T>(string xml) { XmlSerializer serializer = new XmlSerializer(typeof(T)); StringReader reader = new StringReader(xml); try { return (T)serializer.Deserialize(reader); } catch { // TODO: Do something. return default(T); } finally { if (reader != null) reader.Close(); } } public static XmlWriterSettings SimpleXmlWriterSettings { get { XmlWriterSettings settings = new XmlWriterSettings(); settings.CloseOutput = true; settings.OmitXmlDeclaration = true; settings.NewLineChars = String.Empty; settings.Indent = false; return settings; } } } -----Original Message----- From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Pata del Santo Sent: Wednesday, October 18, 2006 3:16 PM To: puntonet List Member Subject: [puntonet] RE: [puntonet] Serialización XML sin <?xml ... ?> Te paso la función genérica que hice para serializar cualquier objeto: Public Shared Function ObjectToXml(ByVal pObject As Object) As String 'uso: Dim strXML as String = ObjectToXml(cualquierObjeto) Dim xmlser As New System.Xml.Serialization.XmlSerializer(pObject.GetType) Dim sr As New System.IO.StringWriter xmlser.Serialize(sr, pObject) Dim s As String = sr.ToString sr.Close() 'esto se queda así hasta que Damian Janowski nos tire una solucion... s = s.Replace("encoding=""utf-16""", "encoding=""iso-8859-1""") s = s.Replace(" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""", "") s = s.Replace(" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""", "") Return s End Function Como ves, me cansé de investigar cómo customizar la declaración y lo parseo a mano... jajaja Podrías mejorarlo para que directamente le quite todo el <?xml...?> Pata. -----Mensaje original----- De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Damian Janowski Enviado el: miércoles, 18 de octubre de 2006 19:47 Para: puntonet List Member Asunto: [puntonet] Serialización XML sin <?xml ... ?> Hola gente, Estoy decorando mis clases con los atributos de serialización para luego utilizar el XmlSerializer. La pregunta es cómo hacer que el output se genere SIN la declaración XML (<?xml.... ?>) ? Algo mejor que parsear el string? :( Gracias! Damián
