503(服务器不可用)加载本地XHTML文件时的WebException
-
04-10-2019 - |
题
因此,我目前正在处理EPUB读取器应用程序,并且我一直在阅读一堆常规XML文件。
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Path.Combine(Directory.GetCurrentDirectory(), "META-INF/container.xml"));
XmlNodeList xnl = xmldoc.GetElementsByTagName("rootfile");
但是,现在我试图打开包含实际书籍文本的XHTML文件,它们是XHTML文件。现在,我真的不知道两者之间的区别,但是我在此代码中遇到以下错误(在同一文档中,使用相同的xmldocument和xmlnodelist变量)
xmldoc.Load(Path.Combine(Directory.GetCurrentDirectory(), "OEBPS/part1.xhtml"));
“ WebException没有得到任何处理:远程服务器返回了一个错误:(503)服务器不可用”
这是本地文档,所以我不明白为什么会出现此错误?任何帮助将不胜感激。 :)
如果有帮助,我在这里有完整的源代码:http://drop.io/epubtest
(我知道 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);
}
其他提示
尝试从XHTML文件中删除Doctype,可能您具有指向外部DTD的链接。
尝试以下代码:
xmldocument xmldoc = new xmldocument();
doc.xmlresolver = null; //这忽略了DTD
xmldoc.load(path.combine(directory.getCurrentDirectory(),“ meta-inf/container.xml”));
xmlnodelist xnl = xmldoc.getElementsbytagname(“ rootfile”);
不隶属于 StackOverflow