Я читаю некоторые RSS с URL и испытываю некоторые проблемы.Первоначально у меня была простая реализация, подобная этой:
SAXReader reader = new SAXReader();
Document doc = reader.read(new URL(sURL));
Однако это не позволило мне тайм-аут запроса, если ответ был очень медленным.Поэтому я изменил его на:
public static org.dom4j.Document readXml(InputStream is) throws SAXException, IOException,
ParserConfigurationException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
dbf.setIgnoringComments(false);
dbf.setIgnoringElementContentWhitespace(true);
dbf.setNamespaceAware(true);
DocumentBuilder db = null;
db = dbf.newDocumentBuilder();
return (org.dom4j.Document)db.parse(is);
}
SAXReader reader = new SAXReader();
URL myUrl = new URL(sURL);
URLConnection c = myUrl.openConnection();
c.setConnectTimeout(10000);
c.setReadTimeout(10000);
org.dom4j.Document doc = readXml(c.getInputStream());
Element root = doc.getRootElement();
При попытке этого я получаю сообщение об ошибке:
org.apache.xerces.dom.DeferredDocumentImpl incompatible with org.dom4j.Document
Как мне избежать этого?Ни один из вышеперечисленных методов не должен возвращать этот тип документа, и я также пытаюсь привести его к правильному типу документа.дом ..