我有一些非常简单的代码:
XmlDocument doc = new XmlDocument();
Console.WriteLine("loading");
doc.Load(url);
Console.WriteLine("loaded");
XmlNodeList nodeList = doc.GetElementsByTagName("p");
foreach(XmlNode node in nodeList)
{
Console.WriteLine(node.ChildNodes[0].Value);
}
return source;
我正在研究 this文件,加载需要两分钟。为什么需要这么长时间?我尝试了从网上获取文件和加载本地文件。
最佳答案
我想是 the DTD of the page这需要很长时间才能加载。鉴于它定义了实体,你不应该 disable it ,所以你最好不要走这条路。
考虑到维基百科解析器的内部工作原理(一团糟),我认为假设它每次都能生成格式良好的 XHTML 是一个很大的飞跃。
使用HTML Agility Pack to parse (如果需要,您可以更轻松地转换为 XmlDocument
,IIRC)。
如果您真的想使用 XmlDocument
路由,您可以保留 HTML DTD 的本地缓存。参见 this post , this post和 this post了解详情。
关于c# - 为什么这个 XML 文件加载缓慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5657374/