2010-12-07 29 views
0

Je veux XML simple:C# sérialisation XML

> <?xml version="1.0" encoding="utf-8" ?> 
>  <contacts> 
>  <contact> 
>   <mobile>0555555555</mobile> 
>   <home>4212566</home> 
>   <office>45698752</office>  
>   <fax>090909</fax> 
>   <email>[email protected]</email> 
>  </contact> 
>  ................................ 
>  <contact> 
>   <mobile>0555555555</mobile> 
>   <home>4212566</home> 
>   <office>45698752</office>  
>   <fax>090909</fax> 
>   <email>[email protected]</email> 
>  </contact> 
>  </contacts> 

i utilisé échantillon de link text

travailler tout va bien, mais il y a quelques attributs tels que xmlns: xsi et xmlns: xsd. Je ne veux pas l'enregistrer sur mon xml. et ne veulent pas utiliser les méthodes de remplacement Comment le faire?

Je vais l'utiliser dans l'application MVC. Quelle est la meilleure façon de créer un fichier XML sur la mémoire? Et regardez ce poste link text quand va répondre

+0

Vous pourriez vouloir accepter une réponse? – jgauffin

Répondre

3

Initialiser votre XmlWriter avec un XmlWriterSettings et mis XmlWriterSettings.OmitXmlDeclaration à true:

XmlWriterSettings settings = new XmlWriterSettings { OmitXmlDeclaration = true }; 
using (XmlWriter writer = XmlWriter.Create(textWriter, settings)) 
{ 
    // serialize XML here 
} 
2

Pour omettre la déclaration XML et espaces de noms XML par défaut:

var settings = new XmlWriterSettings { OmitXmlDeclaration = true, Indent = true }; 

var namespaces = new XmlSerializerNamespaces(); 
namespaces.Add(string.Empty, string.Empty); 

using (var writer = XmlWriter.Create(file, settings)) 
{ 
    XmlSerializer serializer = new XmlSerializer(source.GetType()); 
    serializer.Serialize(writer, source, namespaces); 
}