【发布时间】:2011-08-15 10:42:03
【问题描述】:
我创建了一个包含一些异常数据的 XDocument 对象,我想将其保存到一个 XML 文件中,以便在调查错误时可以查看它:
XDocument xmlDoc = XDocument.Parse(myCustomObject.SerializeToXml());
我使用Save() 方法将此数据保存到文件:
xmlDoc.Save(@"C:\myFile.xml", SaveOptions.None);
其中一个节点输出包含转义字符(< 和>),例如
<RootNode>
<Name>My Object</Name>
<DiagnosticInfo>
<DiagnosticInfo>
<Processors>
<String>
Something Something
<String>
</Processors>
</DiagnosticInfo>
</DiagnosticInfo>
</RootNode>
我尝试在“DiagnosticInfo”XElement 上调用HttpUtility.DecodeHtml(),但它总是以转义形式输出,有什么办法吗?我是否必须对 DiagnosticInfo 元素做一些事情来告诉它不要将其内容视为字符串?
DiagnosticInfo 元素是最有用的元素,因此我希望它在打开 XML 文件时看起来正确。
编辑 回应 Jon Skeet 的评论:
public string SerializeToXml()
{
XmlSerializer s = new XmlSerializer(GetType());
using (StringWriter w = new StringWriter())
{
s.Serialize(w, this);
return w.ToString();
}
}
【问题讨论】:
-
听起来问题出在
myCustomObject.SerializeToXml,您没有显示。 -
@Jon Skeet - 更新问题。想一想,DiagnosticInfo 是作为字符串存储在对象中的,会不会是这个问题?
-
是的,当然。基本上,您显示的 XML 将是
SerializeToXml的结果,我强烈怀疑...
标签: .net xml linq-to-xml