XmlWriter可以用来写XML到内存吗?我正在创建一个返回XML的ASHX,但是当我这样做时它采用路径XmlWriterwriter=XmlWriter.Create(returnXML,settings)但returnXML现在只是一个空字符串(我猜它不起作用),但我需要将XML写入我可以作为响应文本发送的内容中。我尝试了XmlDocument,但它给了我一个期望字符串的错误。我在这里错过了什么?如果您真的想写入内存,请像这样传入StringWriter或StringBuilder:使用系统文本;使用System.Xml;公共类测试{staticvoidMain(){XmlWriterSettings设置=newXmlWriterSettings();设置.Indent=true;StringBuilder构建器=newStringBuilder();使用(XmlWriterwriter=XmlWriter.Create(builder,settings)){writer.WriteStartDocument();writer.WriteStartElement("root");writer.WriteStartElement("元素");writer.WriteString("内容");writer.WriteEndElement();writer.WriteEndElement();writer.WriteEndDocument();}Console.WriteLine(建造者);但是,如果您想将其直接写入响应,则可以传入HttpResponse.Output而不是TextWriter:使用(XmlWriterwriter=XmlWriter.Create(Response.Output,settings)){//在这里写入它}我遗漏了一些东西:刷新XmlWriter的缓冲区:staticvoidMain(){XmlWriterSettingssettings=newXmlWriterSettings();设置.Indent=true;StringBuilder构建器=newStringBuilder();使用(XmlWriterwriter=XmlWriter.Create(builder,设置)){writer.WriteStartDocument();writer.WriteStartElement("root");writer.WriteStartElement("元素");writer.WriteString("内容");writer.WriteEndElement();writer.WriteEndElement();writer.WriteEndDocument();writer.Flush();}Console.WriteLine(建造者);}StringBuilderxml=newStringBuilder();TextWritertextWriter=newStringWriter(xml);XmlWriterxmlWriter=newXmlTextWriter(textWriter);使用xmlWriter执行所有xml编写,并将其直接写入StringBuilder编辑:感谢JonSkeet的评论:StringBuilderxml=newStringBuilder();XmlWriterxmlWriter=XmlWriter.Create(xml);最好的方法是直接写入响应输出流。它是一个内置于ASP.NET中的流,允许您将任何输出写入流,在这种情况下,您可以将XML写入其中。以上就是C#学习教程:XmlWriter可以用来写XML到内存吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
