<?xml version="1.0" encoding="utf-16"?>
の先頭とxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
最初の要素ではなく、プレーンな xml を取得する必要がありXmlSerializer
ます。どうすればいいですか?
66455 次
4 に答える
236
これをすべてまとめると、これは私にとって完璧に機能します:
// To Clean XML
public string SerializeToString<T>(T value)
{
var emptyNamespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
var serializer = new XmlSerializer(value.GetType());
var settings = new XmlWriterSettings();
settings.Indent = true;
settings.OmitXmlDeclaration = true;
using (var stream = new StringWriter())
using (var writer = XmlWriter.Create(stream, settings))
{
serializer.Serialize(writer, value, emptyNamespaces);
return stream.ToString();
}
}
于 2010-09-17T02:10:32.217 に答える
27
XmlSerializer.Serialize
カスタム名前空間を指定してそこに渡すことができるメソッド オーバーロードを使用します。
var emptyNs = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
serializer.Serialize(xmlWriter, objectToSerialze, emptyNs);
null または空の配列を渡してもうまくいかない
于 2009-11-22T22:11:39.267 に答える
15
msdn で説明されているように、XmlWriterSettingsを使用してプロパティOmitXmlDeclarationを true に設定できます。次に、ここで説明されているようにXmlSerializer.Serialize(xmlWriter, objectToSerialize)を使用します。
于 2009-11-20T17:49:15.290 に答える