URLから一部のRSSを読み込んでいて、いくつかの問題が発生しています。 は当初、私はこのような簡単な実装を持っていた:org.apache.xerces.dom.DeferredDocumentImplがorg.dom4j.Documentと互換性がありません
SAXReader reader = new SAXReader();
Document doc = reader.read(new URL(sURL));
しかし、このdidntの応答が非常に遅かったなら、私が要求をタイムアウトすることができます。これをしようとすると、私はannyoingエラーを取得
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
私はこの問題を回避するにはどうすればよい?だから私はそれを変更しましたか上記のいずれのメソッドも、そのタイプのDocumentを返すことは想定されておらず、正しいドキュメントタイプにキャストしようとしています。
EDIT:問題はorg.w3c.domを返すdb.parse(is)です。 。
から
org.dom4j.Document
を作成するには、どうもありがとうございました!問題を解決すると思われる – matskn問題はdb.parse()メソッドです。 org.w3c.dom型のオブジェクトを返します。 – matskn