我正在序列化这样的对象:
XmlSerializer serializer = new XmlSerializer(obj.GetType());
using (StringWriter writer = new StringWriter())
{
serializer.Serialize(writer, obj);
return writer.ToString();
}
(创建了这样的节点)
XmlElement newchild = doc.CreateElement(nodename);
newchild.InnerText = data;
targetnode.AppendChild(newchild);
如果data!=""
一切正常并且序列化程序返回:
<mynode>TheData</mynode>
如果data==""
序列化程序返回:
<mynode>
</mynode>
该空白行从何而来?
我尝试过显而易见的事情,例如只在数据为非空白时设置newchild.InnerText=data
。
答案 0 :(得分:1)
在XML中,<mynode><\mynode>
和<mynode>\n</mynode>
都是等价的,所以它无关紧要,但您可以修改下划线XMLWriter以按您希望的方式对输出进行序列化。
答案 1 :(得分:0)
找到一条简单的路线
if (data.Length == 0) newchild.IsEmpty = true;
else newchild.InnerText = data;
希望这有助于某人。