none
Como convertir clase a cadena XML ? RRS feed

  • Pregunta

  • Hola ...

    Tengo el siguiente codigo y me devuelve una cadena XML , como esta , como podria hacer  para quitar el identificador de la version XML y las url del XSD y el XSI.

    <?xml version="1.0" encoding="UTF-16"?>
    -<CambioEstadoSolicitudModel xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <NroSolicitud>48</NroSolicitud>
        <CambioEstado>148</CambioEstado>
        <FilasAfectadas>248</FilasAfectadas>
      -<Error>
         <CodigoError>448</CodigoError>
         <Descripcion>Error</Descripcion>
         <CantidadFilas>548</CantidadFilas>
      </Error>
    </CambioEstadoSolicitudModel>

    Para que solo queden los Tags de esta forma:

    -<CambioEstadoSolicitudModel>
      <NroSolicitud>48</NroSolicitud>
       <CambioEstado>148</CambioEstado>
       <FilasAfectadas>248</FilasAfectadas>
       -<Error>
           <CodigoError>448</CodigoError>
           <Descripcion>Error</Descripcion>
           <CantidadFilas>548</CantidadFilas>
       </Error>
    </CambioEstadoSolicitudModel>

    Mi codigo:

      public string ConvertirCambioEstadoSolicitudToString(CambioEstadoSolicitudModel model)
            {
                System.Xml.Serialization.XmlSerializer serializador = new System.Xml.Serialization.XmlSerializer(typeof(CambioEstadoSolicitudModel));
                StringBuilder sb = new StringBuilder();
                TextWriter tw = new StringWriter(sb);
                serializador.Serialize(tw, model);
                tw.Close();
                string xml = sb.ToString();
                return xml;
            }


    EFRAIN MEJIAS C VALENCIA - VENEZUELA



    jueves, 27 de febrero de 2020 19:24

Respuestas

  • Perdón, lo puse en VB...

    public string SerializeToString<T>(T value)
        {
            var emptyNamespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
            var serializer = new XmlSerializer(value.GetType());
            var settings = new XmlWriterSettings();
            settings.Indent = true;
            settings.OmitXmlDeclaration = true;
    
            using (var stream = new StringWriter())
            using (var writer = XmlWriter.Create(stream, settings))
            {
                serializer.Serialize(writer, value, emptyNamespaces);
                return stream.ToString();
            }
        }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 28 de febrero de 2020 18:26
    Moderador

Todas las respuestas

  • Prueba algo parecido a esto. Es un método genérico 

    Public Function SerializeToString(Of T)(ByVal value As T) As String
        Dim emptyNamespaces = New XmlSerializerNamespaces({XmlQualifiedName.Empty})
        Dim serializer = New XmlSerializer(value.[GetType]())
        Dim settings = New XmlWriterSettings()
        settings.Indent = True
        settings.OmitXmlDeclaration = True
    
        Using stream = New StringWriter()
    
            Using writer = XmlWriter.Create(stream, settings)
                serializer.Serialize(writer, value, emptyNamespaces)
                Return stream.ToString()
            End Using
        End Using
    End Function


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    jueves, 27 de febrero de 2020 23:00
    Moderador
  • Perdón, lo puse en VB...

    public string SerializeToString<T>(T value)
        {
            var emptyNamespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
            var serializer = new XmlSerializer(value.GetType());
            var settings = new XmlWriterSettings();
            settings.Indent = true;
            settings.OmitXmlDeclaration = true;
    
            using (var stream = new StringWriter())
            using (var writer = XmlWriter.Create(stream, settings))
            {
                serializer.Serialize(writer, value, emptyNamespaces);
                return stream.ToString();
            }
        }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 28 de febrero de 2020 18:26
    Moderador