【发布时间】:2011-07-19 03:45:08
【问题描述】:
我的 XmlSerializer 代码输出的 Xml 比我需要的要详细得多,如何正确控制输出设置?这是代码:
var stream = new MemoryStream();
var xmlSerializer = new XmlSerializer(objectToSerialize.GetType());
xmlSerializer.Serialize(stream, objectToSerialize);
string xml = encoding != null ? encoding.GetString(stream.ToArray())
: Encoding.Default.GetString(stream.ToArray());
输出如下所示:
<?xml version="1.0"?>
<ArrayOfProduct xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Product>
<Id>1</Id>
<ProductCode>A</ProductCode>
<ProductDescription>Product A</ProductDescription>
<Obsolete xsi:nil="true"></Obsolete>
</Product>
</ArrayOfProduct>
我希望能够像这样格式化 Xml:
- 从没有值的行中删除 xsi:nil="true"
- 将空标签(如
<Obsolete></Obsolete>)折叠成简单的形式<Obsolete />
【问题讨论】:
-
复制类结构和属性会很有帮助。
标签: c# xml deserialization xml-deserialization