503 (сервер недоступен) WebException при загрузке локального файла XHTML

StackOverflow https://stackoverflow.com/questions/2886530

Вопрос

Так что в настоящее время я работаю над приложением для читателя EPUB, и я читал через кучу обычных файлов XML, просто отлично с помощью System.xml и XMLDocument:

XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Path.Combine(Directory.GetCurrentDirectory(), "META-INF/container.xml"));
XmlNodeList xnl = xmldoc.GetElementsByTagName("rootfile");

Однако теперь я пытаюсь открыть файлы XHTML, которые содержат фактический текст книги, и они файлы XTML. Теперь я на самом деле не знаю разницу между ними, но я получаю следующую ошибку с этим кодом (в том же документе, используя один и тот же XMLDocument и XMLnodelist.

xmldoc.Load(Path.Combine(Directory.GetCurrentDirectory(), "OEBPS/part1.xhtml"));

«WebException был неработал: удаленный сервер вернул ошибку: (503) сервер недоступен»

Это местный документ, поэтому я не понимаю, почему он дает эту ошибку? Любая помощь будет очень ценится. :)

У меня здесь полный исходный код, если он поможет:http://drop.io/upubtest.

(Я знаю ePubConstructor.ParseDocument() Метод ужасно грязный, я просто пытаюсь заставить его работать на данный момент, прежде чем разделить его на классы)

Это было полезно?

Решение

Попробуйте следующий непроверенный код:

XmlDocument xmldoc = new XmlDocument(); 
XmlReaderSettings settings = new XmlReaderSettings
{
    XmlResolver = new XmlUrlResolver()
};
using (var reader = XmlReader.Create(
    Path.Combine(Directory.GetCurrentDirectory(), 
                 "OEBPS/part1.xhtml"), settings))
{
    xmlDoc.Load(reader);
}

Другие советы

Попробуйте удалить DOCTYPE из файла XHTML, возможно, у вас есть ссылка на внешний DTD.

Попробуйте следующий код:

XMLDocument XMLDOC = новый XMLDocument ();

doc.xmlresolver = null; // это игнорирует DTD

xmldoc.load (path.combine (directory.getcurrentDirectory (), "meta-inf / contacter.xml"));

XMLNodelist xnl = xmldoc.getelementsbytagname («rootfile»);

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top