我无法让 TagSoup 工作。我正在使用下面的代码,但是当我打印解析器返回的节点时(带有 System.err.println(doc); 的行),我总是得到“[#document: null]”。
我不知道如何找到此代码中的错误,或者,无论是哪个错误,问题的根源。请帮忙!
public final Document parseDOM(final File fileToParse) {
Parser p = new Parser();
SAX2DOM sax2dom = null;
org.w3c.dom.Node doc = null;
try {
URL url = new URL("http://stackoverflow.com/");
p.setFeature(Parser.namespacesFeature, false);
p.setFeature(Parser.namespacePrefixesFeature, false);
sax2dom = new SAX2DOM();
p.setContentHandler(sax2dom);
p.parse(new InputSource(new InputStreamReader(url.openStream())));
doc = sax2dom.getDOM();
System.err.println(doc);
} catch (Exception e) {
// TODO handle exception
e.printStackTrace();
}
return doc.getOwnerDocument();
}
最佳答案
来自 getOwnerDocument
的文档:
When this node is a Document or a DocumentType which is not used with any Document yet, this is null.
由于 getDOM
在您的情况下应该返回一个 Document
,您可以简单地转换返回值或将 doc
的类型更改为 文档
。
关于java - 使用 tagsoup 构建 DOM 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4080045/