0

嗨,我使用 XmlTextReader 读取 iPhone 配置实用程序 3.6 生成的策略文件,当阅读器到达 doctype 元素时,它将挂起大约 15-20 秒。这对我来说是一个大问题,因为我需要一次读取 60 个文件,并且每个文件读取 3 次。这是我拥有的一些代码和一个示例文件,您可以使用它来重复该问题。

private int findStart(String d)
    {
        Boolean StartLooking = false;
        using (XmlTextReader xr = new XmlTextReader(d))
        {
            while (xr.Read())
            {
                if (xr.NodeType.Equals(XmlNodeType.Element) && xr.Name.Equals("dict") && !StartLooking)
                    StartLooking = true;
                else if (xr.NodeType.Equals(XmlNodeType.Element) && xr.Name.Equals("dict") && StartLooking)
                    return xr.LineNumber;
            }
            xr.Close();
        }
        return -1;
    }

XML 文件: AdvancedPayload.mobileconfig (Dropboxlink)

如果您知道为什么会发生此挂断,请回复。谢谢

4

2 回答 2

0

DOCTYPE 是什么样的?在我看来,文档类型引用了外部 DTD,而您的应用实际上是从 Web 下载外部 DTD。可以吗?Xml(或您)是否需要 DTD?AFAIR 如果不需要,您可以关闭 DTD 处理。

于 2012-10-04T19:23:32.820 回答
0

利用XmlTextReader.DtdProcessing=DtdProcessing.Ignore;

于 2015-11-05T06:38:38.527 回答