- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个页面,我只是在其中将一堆 XML 数据写入屏幕。它进行了几次数据库调用以获取所有数据:
XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
writer.WriteStartDocument();
writer.WriteStartElement("rss");
writer.WriteAttributeString("version", "2.0");
writer.WriteStartElement("channel");
writer.WriteElementString("title", "MyTitle");
writer.WriteElementString("link", "http://www.mysite.com/");
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
SqlCommand cmd = new SqlCommand("SELECT * FROM vwXMLFeedData", conn);
conn.Open();
using (SqlDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
writer.WriteStartElement("item");
writer.WriteElementString("title", rdr["Title"].ToString());
writer.WriteElementString("link", rdr["URL"].ToString());
writer.WriteEndElement();
}
}
}
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
我想缓存所有 XML 数据,这样我就不需要每次都调用数据库,但我不确定如何使用 XmlTextWriter 来完成它。这里最好的策略是什么?
最佳答案
如果你想把它缓存在内存中,然后创建一个MemoryStream
并写入它。因此,您初始化编写器的代码将变为:
MemoryStream CacheStream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(CacheStream, Encoding.UTF8);
填充流的代码保持不变,除了在关闭编写器之前,您需要保存流的缓冲区和大小:
writer.Flush();
long CachedDataSize = CacheStream.Position;
byte[] CachedData = CacheStream.Buffer;
writer.Close();
或者,如果您想缓存到文件中,只需创建一个 FileStream
并将 XML 写入其中即可。
无论哪种情况,您都可以在需要向用户发送信息时从缓存数据中读取数据。
关于c# - 如何缓存 XmlTextWriter 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4512843/
我正在使用 XMLTextWriter 动态创建 XML 文档(在 VB.Net 中)。 我希望空标签看起来像这样 - 而不是这个 - 所以,我使用 WriteFullEndElement 来结束元
下面的语句有什么问题? XmlTextWriter writer = new XmlTextWriter(@"D:\project\data\" + System.DateTime.Today + @
.NET 的 XmlTextWriter 创建无效的 xml 文件。 在 XML 中,一些控制字符是允许的,例如“水平制表符”( ),但其他的则不允许,例如“垂直制表符”()。 (参见 spec。)
所以我在这里处理一些核心的旧版代码。我们正在谈论.NET 2.0。我的问题是我的程序在运行时会吐出一个异常,并显示信息说没有为标准XML找到数据。我正在使用XMLTextWriter类。因为这是工作,
我有一个页面,我只是在其中将一堆 XML 数据写入屏幕。它进行了几次数据库调用以获取所有数据: XmlTextWriter writer = new XmlTextWriter(Response.Ou
我正在处理一些非常复杂的代码,这些代码使用 XmlTextwriter 写入内存流。 Visual Studio 调试中有没有一种方法可以在我单步执行代码时查看 memorystream/XmlTex
我有一个试图保存为 xml 的结构,创建小的 XML 似乎没有问题,但是对于较大的文件,它似乎嵌套了后面的标签,对于前 30 个左右我我得到格式正确的结果: 2video.avi40 但是,一段时间后
我正在尝试创建一个信息路径表单 XML 文件。我最初是在关注这个例子 programmatically-create-infopath-form-console-app但我遇到了多个 namespac
是否可以重用 XmlTextWriter 类的同一个实例来生成更多的 xml 文档?我的意思是这样的: XmlTextWriter writer = new XmlTextWriter(); writ
我正在使用 XmlTextWriter 及其 WriteElementString 方法,例如: XmlTextWriter writer = new XmlTextWriter("filename.
我正在尝试从提供 Xml 内容的自定义 HttpHandler 中尽可能多地发挥性能。 我想知道哪个对性能更好。使用 XmlTextWriter 类或临时 StringBuilder 操作,例如: S
我卡在了这个 httpWebRequest 问题上。我需要将 XML 发送到网站。但我的要求不断得到否定的回应。我看到了一些设置了 ContentLength 的代码示例……这可能是问题所在,但我不知
当我遇到有人使用 XmlTextWriter 时,我正在使用 XmlSerializer。 这两者有什么区别? 对我来说,它们具有创建 XML 文件的相同功能。 Microsoft 网站说 XmlTe
这个方法有什么作用,为什么需要它? “go to definition”选项将我带到一个包含所有注释的函数,下面是它的用途 //Writes the XML declaration with the
我正在处理一个处理 C# 中字符串本地化的大型 XML 文件。我没有编写生成 XML 的程序,但我可以访问源代码并且我想修改它,因为它当前输出 1.0 作为版本,但它在文档中包含非法字符。 这是代码当
我正在查看 C# 中的这两个类:XmlTextWriter 和 XmlWriter。谁能解释一下区别并告诉我在哪里使用哪个? 最佳答案 XmlWriter 是一个抽象类。 XmlTextWriter是
我在我的项目中使用 XmlTextWriter 类。我不知道,如何在 Xml 中使用 CDATA。谁能帮帮我? objX.WriteElementString("category", c.Deepes
我认为我错过了一些微不足道的东西,但我在这方面浪费了很多时间,所以它的解决方案可能对其他人也有用: 我正在 Linux 下使用 libxml2 2.9.8(纯 C,而不是 C++ 绑定(bind))。
Microsoft 推荐使用 XmlWriter 而不是 XmlTextWriter https://msdn.microsoft.com/en-us/library/system.xml.xmlte
using (Stream responseStream = new MemoryStream()) { try
我是一名优秀的程序员,十分优秀!