C # XML-сериализация - PullRequest
       1

C # XML-сериализация

0 голосов
/ 07 декабря 2010

Я хочу простой XML как:

>  <?xml version="1.0" encoding="utf-8" ?>
>     <contacts>
>       <contact>   
>         <mobile>0555555555</mobile>
>         <home>4212566</home>
>         <office>45698752</office>    
>         <fax>090909</fax>  
>         <email>sdgdg@dgsdg.com</email>  
>       </contact> 
>       ................................
>       <contact>   
>         <mobile>0555555555</mobile>
>         <home>4212566</home>
>         <office>45698752</office>    
>         <fax>090909</fax>  
>         <email>sdgdg@dgsdg.com</email>  
>       </contact>
>     </contacts>

я использовал образец из текст ссылки

все работает нормально, но есть некоторые атрибуты, такие как xmlns: xsi и xmlns: xsd. я не хочу, чтобы сохранить его на моем XML. и не хотите использовать методы замены Как это сделать?

Я буду использовать его в приложении MVC. Каков наилучший способ создать XML на память? И посмотрите этот пост текст ссылки , когда собираетесь ответить

Ответы [ 2 ]

3 голосов
/ 07 декабря 2010

Инициализируйте XmlWriter с помощью XmlWriterSettings и установите XmlWriterSettings.OmitXmlDeclaration на true:

XmlWriterSettings settings = new XmlWriterSettings { OmitXmlDeclaration = true };
using (XmlWriter writer = XmlWriter.Create(textWriter, settings))
{
    // serialize XML here
}
2 голосов
/ 07 декабря 2010

Чтобы пропустить объявление XML и пространства имен XML по умолчанию:

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);
}
...