J'ai besoin d'obtenir du XML brut, sans le <?xml version="1.0" encoding="utf-16"?>
au début et xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
dans le premier élément de XmlSerializer
. Comment puis-je le faire?
c#
.net
xml-serialization
xml-declaration
Grzenio
la source
la source
using( writer )
, comme on peut le voir dans cette question: stackoverflow.com/a/11192524/2144408 .Utilisez la
XmlSerializer.Serialize
surcharge de méthode où vous pouvez spécifier des espaces de noms personnalisés et y passer ceci.var emptyNs = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }); serializer.Serialize(xmlWriter, objectToSerialze, emptyNs);
passer un tableau nul ou vide ne fera pas l'affaire
la source
Vous pouvez utiliser XmlWriterSettings et définir la propriété OmitXmlDeclaration sur true comme décrit dans le msdn . Utilisez ensuite XmlSerializer.Serialize (xmlWriter, objectToSerialize) comme décrit ici .
la source
Cela écrira le XML dans un fichier au lieu d'une chaîne. Le ticket d'objet est l'objet que je sérialise.
Espaces de noms utilisés:
using System.Xml; using System.Xml.Serialization;
Code:
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); }
la source