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