我将字符串从多行文本框序列化为XML。是发送换行符和制表符以保存在XML中,所以当我反序列化它时,我看到它看起来一样吗?
示例 - 文本框如下所示:
Hello JohnDoe,
This is a message
...
Somelines....
Thank you,
...
End
当我对其进行序列化然后反序列化时,文本框将填充如下:
Hello JohnDoe,This is a message..Some lines....Thank you,...End
它不一定非常漂亮,我只是想找到一种更好的方式以更好的格式恢复它。感谢。
好的,所以我的代码如下:
public void SerializeToXML(List<Report> newReport)
{
XmlSerializer serializer = new XmlSerializer(typeof(List<Report>));
//XmlWriterSettings serializer_settings = new XmlWriterSettings();
//serializer_settings.Indent = true;
//serializer_settings.NewLineOnAttributes = true;
TextWriter textWriter = new StreamWriter(xmlPath);
serializer.Serialize(textWriter, newReport);
textWriter.Close();
}
其中Report
只是一个带有一些字符串属性的类。评论的线条是我试图实现目标的一些事情。
举报课程代码:
public class Report
{
public string name
{ get; set; }
public string email
{ get; set; }
public string defectID
{ get; set; }
public string fixedBuild
{ get; set; }
public string description
{ get; set; }
[XmlIgnore]
public string messageBody
{ get; set; }
private static readonly XmlDocument _xmlDoc = new XmlDocument();
[XmlElement("messageBody")]
public XmlCDataSection TextCData
{
get
{
return _xmlDoc.CreateCDataSection(messageBody);
}
set
{
messageBody = value.Data;
}
}
}
输出保持不变(没有空白格式)。
答案 0 :(得分:3)
保留XML中所有空格的一种方法是使用CDATA
部分。详细信息取决于序列化的方式。有关Web服务上下文中的说明,请参阅this question。如果手动序列化,请使用XmlWriter.WriteCData
方法。
答案 1 :(得分:0)