许多 .NET 函数使用 XmlWriter 来输出/生成 xml。输出到文件/字符串/内存是一个非常操作:
XmlWriter xw = XmlWriter.Create(PutYourStreamFileWriterEtcHere);
xw.WriteStartElement("root");
...
有时,您需要操作生成的 Xml,因此希望将其加载到 XmlDocument 中,或者由于其他原因可能需要 XmlDocument,但您必须使用 XmlWriter 生成 XML。例如,如果您调用仅输出到 XmlWriter 的 3rd 方库中的函数。
您可以做的一件事是将 xml 写入字符串,然后将其加载到您的 XmlDocument 中:
StringWriter S = new StringWriter();
XmlWriter xw = XmlWriter.Create(S);
/* write away */
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(S.ToString());
然而这是低效的——首先将所有 xml 信息序列化为一个字符串,然后再次解析该字符串以创建 DOM。
你怎么能指向一个 XmlWriter 来直接构建一个 XmlDocument 呢?