使用引用的DTD创建XPathDocument有时会引发Web异常。为什么呢?
答案 0 :(得分:1)
您可以编写自定义XmlUrlResolver然后忽略 远程DTD。另外,我相信你可以在XmlTextReader上设置使用XmlResolver = null。
答案 1 :(得分:1)
对于那些感兴趣的人我找到了一个解决方法来禁用dtd检查
XmlReaderSettings settings = new XmlReaderSettings();
settings.XmlResolver = null;
settings.ProhibitDtd = false;
var xmlReader = XmlTextReader.Create(new StringReader(xmlString),settings);
XPathDocument xpathDoc = new XPathDocument(xmlReader);
答案 2 :(得分:0)
请参阅http://todotnet.com/archive/2006/07/27/8248.aspx
因为在建设中 XPathDocument,有一个http GET 命令,看它是否可以访问 DTD。它没有做任何事情 DTD。这是为了以防万一。所以虽然 XPathDocument最初设置为 是一个更快的替代品 XmlDocument,你会有的 http请求的额外开销 这需要解决。想像 那台服务器在另一边 全球!