Почему я получаю веб-исключение при создании XPathDocument? - PullRequest
1 голос
/ 27 октября 2008

Создание XPathDocument с указанным DTD иногда вызывает веб-исключение. Почему?

Ответы [ 3 ]

1 голос
/ 28 октября 2008

Вы можете написать собственный XmlUrlResolver и затем проигнорировать удаленный DTD. Кроме того, я считаю, что вы можете установить использование XmlResolver = null в XmlTextReader.

1 голос
/ 01 февраля 2015

для тех, кто заинтересован, я нашел обходной путь для отключения проверки dtd

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

 var xmlReader = XmlTextReader.Create(new StringReader(xmlString),settings);
 XPathDocument xpathDoc = new XPathDocument(xmlReader);
0 голосов
/ 27 октября 2008

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

Потому что в строительстве XPathDocument, есть http GET Команда, чтобы увидеть, если он может получить доступ к DTD. Он ничего не делает с DTD. Это на всякий случай. Так что пока XPathDocument изначально настроен на быть более быстрой альтернативой XmlDocument, вы будете иметь дополнительные издержки http-запроса это должно быть решено. Представить этот сервер находится на другой стороне глобус!

...