【发布时间】:2020-05-10 23:05:58
【问题描述】:
我正在用 C# 构建一个类库,它使用 XmlTextWriter 类构建一个 XML,然后将其导出为 HTML 文档。
但是,当我使用 XmlTextWriter 对象作为内容保存扩展名为 .html 的文件时,生成的文件仅包含文本“System.Xml.XmlTextWriter”
这出现在下面定义的方法中,特别是在最后一行:-
public void SaveAsHTML(string filepath)
{
XmlTextWriter html;
html = new XmlTextWriter(@"D:/HTMLWriter/XML/HTMLSaveAsConfig.xml", System.Text.Encoding.UTF8);
html.WriteStartDocument();
html.WriteStartElement("html");
html.WriteRaw(Convert.ToString(Head));
html.WriteRaw(Convert.ToString(Body));
html.WriteEndElement();
html.WriteEndDocument();
html.Flush();
html.Close();
System.IO.File.WriteAllText(filepath, html.ToString());
}
对于上下文,变量 Head 和 Body 也是 XmlTextWriter 对象,分别包含将成为 html 文件的 和元素。
我尝试过使用 Convert.ToString(),这会导致同样的问题。
我很想尝试为我的类覆盖 ToString() 方法作为修复,可能使用 XmlSerializer 类。但是我想知道是否有一种噪音较小的方式将 Xml 对象作为字符串返回?
【问题讨论】:
-
您是否尝试将输出写入
"D:/HTMLWriter/XML/HTMLSaveAsConfig.xml"或filepath? -
@PhilBrubaker 输出应写入文件路径。 HTMLSaveAsConfig.xml 将在对象解构时被删除。
-
谢谢 Ben - 我也想通了。请在下面查看我的Answer,它可能会让您更接近解决这个问题的好地方。