Muszę pobrać zwykły xml, bez <?xml version="1.0" encoding="utf-16"?>
na początku iw xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
pierwszym elemencie z XmlSerializer
. Jak mogę to zrobić?
c#
.net
xml-serialization
xml-declaration
Grzenio
źródło
źródło
using( writer )
, jak widać w tym pytaniu: stackoverflow.com/a/11192524/2144408 .Użyj
XmlSerializer.Serialize
przeciążenia metody, w którym możesz określić niestandardowe przestrzenie nazw i przekazać je do tego.var emptyNs = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }); serializer.Serialize(xmlWriter, objectToSerialze, emptyNs);
przekazanie wartości null lub pustej tablicy nie załatwi sprawy
źródło
Możesz użyć XmlWriterSettings i ustawić właściwość OmitXmlDeclaration na true zgodnie z opisem w pliku msdn . Następnie użyj XmlSerializer.Serialize (xmlWriter, objectToSerialize) zgodnie z opisem tutaj .
źródło
Spowoduje to zapisanie XML do pliku zamiast ciągu. Bilet obiektu to obiekt, który serializuję.
Używane przestrzenie nazw:
using System.Xml; using System.Xml.Serialization;
Kod:
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); }
źródło