java - 使用 tagsoup 构建 DOM 文档

标签 java html parsing dom

我无法让 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/

相关文章:

C - 读取未知格式的输入

php - 使用 SimpleXML 加载 XML 不返回某些元素的属性

java - 使用另一个对象及其哈希码从 HashMap 获取 key

javascript - 如何使用 jQuery 禁用 CSS 规则?

html - 在标题中垂直居中 Logo 和导航链接

html - 似乎无法更改按钮的颜色

java - 无法使用 @Proxy 和 Jackson 创建 REST 响应

java - java中如何检查 View 是否存在?

当自定义加载器中引用类时,Java 类过滤器加载不同版本的相同类?

java - 映射字符串数组