创建具有引用的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?