Мне нужно получить простой xml без <?xml version="1.0" encoding="utf-16"?>
начала и xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
в первом элементе из XmlSerializer
. Как я могу это сделать?
c#
.net
xml-serialization
xml-declaration
Грзенио
источник
источник
using( writer )
, как можно увидеть в этом вопросе: stackoverflow.com/a/11192524/2144408 .Используйте
XmlSerializer.Serialize
перегрузку метода, где вы можете указать настраиваемые пространства имен и передать туда this.var emptyNs = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }); serializer.Serialize(xmlWriter, objectToSerialze, emptyNs);
передача нулевого или пустого массива не поможет
источник
Вы можете использовать XmlWriterSettings и установить для свойства OmitXmlDeclaration значение true, как описано в файле msdn . Затем используйте XmlSerializer.Serialize (xmlWriter, objectToSerialize), как описано здесь .
источник
Это запишет XML в файл вместо строки. Билет на объект - это объект, который я сериализую.
Используемые пространства имен:
using System.Xml; using System.Xml.Serialization;
Код:
XmlSerializerNamespaces emptyNamespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }); XmlSerializer serializer = new XmlSerializer(typeof(ticket)); XmlWriterSettings settings = new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true }; using (XmlWriter xmlWriter = XmlWriter.Create(fullPathFileName, settings)) { serializer.Serialize(xmlWriter, ticket, emptyNamespaces); }
источник