为什么 xml 序列化会在元素中添加一个额外的空白字符?
Why xml serialization adds an extra whitespace character inside the element?
我正在尝试将一个对象序列化为 XML,但我遇到的问题是该对象被序列化为
<something />
而不是
<something/>
我相信两者都是有效的 XML 语法,但我必须得到 <something/>
这是我的代码
public static string Serialize<T>(T ObjectToSerialize)
{
XmlWriterSettings settings = new XmlWriterSettings()
{
OmitXmlDeclaration = true,
Encoding = Encoding.UTF8,
};
XmlSerializer xmlSerializer = new XmlSerializer(ObjectToSerialize.GetType());
using (StringWriter textWriter = new StringWriter())
{
using (var xw = XmlWriter.Create(textWriter, settings))
{
xmlSerializer.Serialize(xw, ObjectToSerialize);
}
return textWriter.ToString();
}
}
我该如何解决?
可能不是最有效的解决方案,但您可以在 Serialize<T>()
.
中返回序列化数据之前做一个简单的 String.Replace
正在替换
return textWriter.ToString();
有
return textWriter.ToString().Replace(" />","/>");
我正在尝试将一个对象序列化为 XML,但我遇到的问题是该对象被序列化为
<something />
而不是
<something/>
我相信两者都是有效的 XML 语法,但我必须得到 <something/>
这是我的代码
public static string Serialize<T>(T ObjectToSerialize)
{
XmlWriterSettings settings = new XmlWriterSettings()
{
OmitXmlDeclaration = true,
Encoding = Encoding.UTF8,
};
XmlSerializer xmlSerializer = new XmlSerializer(ObjectToSerialize.GetType());
using (StringWriter textWriter = new StringWriter())
{
using (var xw = XmlWriter.Create(textWriter, settings))
{
xmlSerializer.Serialize(xw, ObjectToSerialize);
}
return textWriter.ToString();
}
}
我该如何解决?
可能不是最有效的解决方案,但您可以在 Serialize<T>()
.
String.Replace
正在替换
return textWriter.ToString();
有
return textWriter.ToString().Replace(" />","/>");