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