您好,我使用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)
如果你知道为什么会发生这种挂机,请回复。谢谢
发布于 2012-10-05 03:23:33
DOCTYPE是什么样子的?在我看来,doctype引用了一个外部DTD,而您的应用程序实际上是从web上下载外部DTD。会不会是这样呢?Xml (或您)是否需要DTD?如果你不需要DTD处理,你可以关闭它。
发布于 2015-11-05 14:38:39
使用XmlTextReader.DtdProcessing=DtdProcessing.Ignore;
https://stackoverflow.com/questions/12732769
复制相似问题