1

参照されたDTDを使用してXPathDocumentを作成すると、Web例外がスローされることがあります。なんで?

4

3 に答える 3

1

カスタムXmlUrlResolverを作成してから、リモートDTDを無視することができます。また、XmlTextReaderでuse XmlResolver=nullを設定できると思います。

于 2008-10-28T01:00:09.593 に答える
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);
于 2015-02-01T08:56:36.707 に答える
0

http://todotnet.com/archive/2006/07/27/8248.aspxを参照してください

XPathDocumentの構築には、DTDにアクセスできるかどうかを確認するためのhttpGETコマンドがあるためです。DTDでは何もしていません。念のためです。そのため、XPathDocumentは最初はXmlDocumentのより高速な代替手段として設定されていますが、解決する必要のあるhttpリクエストの追加のオーバーヘッドが発生します。そのサーバーが地球の反対側にあると想像してみてください!

于 2008-10-27T12:58:18.477 に答える