我需要得到普通的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
。我该怎么做?我如何才能使xmlserializer只序列化纯xml?
41
A
回答
114
把这一切在一起 - 这完美的作品对我来说:
// To Clean XML
public string SerializeToString(T value)
{
var emptyNamepsaces = 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, emptyNamepsaces);
return stream.ToString();
}
}
12
您可以使用XmlWriterSettings和财产OmitXmlDeclaration设置为true为described in the msdn。然后使用XmlSerializer.Serialize(xmlWriter,objectToSerialize)as described here。
19
使用XmlSerializer.Serialize
方法重载,您可以在其中指定自定义名称空间并将其传递给此处。
var emptyNs = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty });
serializer.Serialize(xmlWriter, objectToSerialze, emptyNs);
传递null或空数组不会做的伎俩
相关问题
- 1. XMLSerializer不反序列化XML
- 2. 使用XMLSerializer反序列化XML
- 3. 为什么我不能用XmlSerializer序列化只读字段?
- 4. 如何使用XmlSerializer序列化'System.Numerics.Complex'?
- 5. XMLSerializer无法反序列化xml文档
- 6. 使用XmlSerializer序列化ArrayList
- 7. 使用XmlSerializer反序列化
- 8. 使用XmlSerializer序列化IntPtr
- 9. 无法反序列化以前序列化的XML与c#xmlserializer
- 10. 使用XmlSerializer以&符号化反序列化XML()
- 11. 如何动态XML序列化与XmlSerializer的
- 12. 如何忽略XmlSerializer反序列化期间只读属性集?
- 13. SOAP XML只能部分反序列化
- 14. XML序列化/反序列化最佳实践:XmlSerializer或Linq To XML?
- 15. 使用XmlSerializer序列化为XML字符串时的序列化值
- 16. 使用XMLSerializer序列化前从XML中删除无效字符()
- 17. 使用XmlSerializer反序列化XML响应时缺失根元素
- 18. XmlSerializer和xsi:反序列化
- 19. XmlSerializer不会序列化IEnumerable
- 20. XMLSerializer未序列化DateTime
- 21. XmlSerializer不反序列化DateTime
- 22. XmlSerializer自定义序列化
- 23. 如何反序列化到列表<String>使用XmlSerializer
- 24. 如何在C#中使用XmlSerializer将字节数组序列化为XML?
- 25. 如何使用XmlSerializer反序列化带名称空间的xml文档?
- 26. 如何使用XmlSerializer类反序列化这个简单的xml配置?
- 27. 如果找不到元素,我能否使用C#中的XmlSerializer反序列化?
- 28. 自定义序列化使用XmlSerializer
- 29. 使用XmlSerializer的序列化派生类
- 30. XmlSerializer使用默认的XmlRoot序列化
使用(var stream = new StringWriter())可以更改为var stream = new StringWriter();在代码分析中发生错误,因为它会将xmlwriter丢弃两次。 – Archna
在方法名称后需要''。例如。 'SerializeToString '(StackOverflow不允许我编辑少于6个字符) –
derekantrican