-->

为什么要创建一个XPathDocument的,当我得到的网络异常?(Why do I get web

2019-10-20 05:04发布

创建具有引用的DTD的XPathDocument中有时会抛出一个异常网络。 为什么?

Answer 1:

你可以写一个自定义XmlUrlResolver,然后忽略远程DTD。 此外,我相信你可以设置使用的XmlResolver上的XmlTextReader = NULL。



Answer 2:

对于那些有兴趣,我找到了一个解决方法禁用DTD检查

XmlReaderSettings settings = new XmlReaderSettings();
 settings.XmlResolver = null;
 settings.ProhibitDtd = false;

 var xmlReader = XmlTextReader.Create(new StringReader(xmlString),settings);
 XPathDocument xpathDoc = new XPathDocument(xmlReader);


Answer 3:

见http://todotnet.com/archive/2006/07/27/8248.aspx

因为在XPathDocument中的建筑,有一个HTTP GET命令,看是否可以访问DTD。 这不是做与DTD什么。 它是以防万一。 因此,尽管XPathDocument中最初设立是XmlDocument的一个更快的替代方案,你就会有一个需要解决的一个HTTP请求的额外开销。 试想一下,服务器是在地球的另一边!



文章来源: Why do I get web exception when creating an XPathDocument?