c# - 为什么这个 XML 文件加载缓慢?

标签 c# xml performance xhtml

我有一些非常简单的代码:

        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 postthis post了解详情。

关于c# - 为什么这个 XML 文件加载缓慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5657374/

相关文章:

c# - ASP.NET Core Web API 验证错误处理

C# Linq 到 xml。嵌套在父对象中的项目

java - Logback 找不到资源 logback.xml

java - 如何动态创建XML(java)?

sql - MySQL MyISAM 表性能问题重温

c# - 以编程方式将 ListViewItem 添加到 WPF 中的 Listview

c# - 无法将属性或索引器 'System.DateTime.TimeOfDay' 分配给 — 它是只读的

c# - 编译器会优化 bool 赋值吗?

c# - 对于二维数组,Array.Copy() 是否比 for 循环更快?

c# - 自动属性会影响运行时性能吗?