2008-10-07 7 views
7

je la méthode de sérialisation suivante:sérialisation XML, sans espace

Private Function SerializeData(ByVal data As cData) As String 
     If data IsNot Nothing Then 
      Dim xml_stream As New MemoryStream() 
      Dim sr As StreamReader 
      Dim xs As New XmlSerializer(GetType(cData)) 
      xml_stream = New MemoryStream() 

      Try 
       xs.Serialize(xml_stream, data) 
       xml_stream.Position = 0 

       sr = New StreamReader(xml_stream) 
       Return sr.ReadToEnd() 
      Finally 
       If sr IsNot Nothing Then sr.Close() 
       xml_stream.Close() 
      End Try 

     Else 
      Return "No data" 
     End If 
    End Function 

mais il renvoie les données XML les éléments imbriqués en retrait. Y a-t-il un moyen d'éteindre cela sur le sérialiseur, ou dois-je juste lancer une routine de remplacement de trouver pour se débarrasser de tout cela?

Essentiellement, ce que je veux voir est:

<root><child1>data</child1><child2>data</child2></root> 

Répondre

10

Utilisez la commande prioritaire de sérialisation qui accepte un paramètre XmlWriter. Créez le XmlWriter en utilisant XmlWriter :: Create, en passant un objet XmlWriterSettings avec la propriété Indent définie sur false.