【问题标题】:How to convert a Jsoup Document to a W3C Document?如何将 Jsoup 文档转换为 W3C 文档?
【发布时间】:2013-07-22 01:34:37
【问题描述】:

我通过解析内部 HTML 页面构建了一个 Jsoup 文档,

public Document newDocument(String path) throws IOException {

    Document doc = null;
    doc = Jsoup.connect(path).timeout(0).get();
            return new HtmlDocument<Document>(doc);
}

我想将 Jsoup 文档转换为我的 org.w3c.dom.Document 我为此使用了一个可用的库DOMBuilder,但是在解析时我得到org.w3c.dom.Document 为空。我无法理解问题,尝试搜索但找不到任何答案。

生成 W3C DOM 文档的代码:

Document jsoupDoc=factory.newDocument("http:localhost/testcases/test_2.html"));
org.w3c.dom.Document docu= DOMBuilder.jsoup2DOM(jsoupDoc);

谁能帮我解决这个问题?

【问题讨论】:

标签: html-parsing jsoup apache-stanbol


【解决方案1】:

我认为到目前为止(2022 年)发生了很多更新。

org.w3c.dom.Document document = W3CDom.convert(jsoupDoc);

这对我有用。

【讨论】:

    【解决方案2】:

    另外,Jsoup 为 W3CDom 类提供 fromJsoup 方法。此方法将 Jsoup 文档转换为 W3C 文档。

    Document jsoupDoc = ...
    W3CDom w3cDom = new W3CDom();
    org.w3c.dom.Document w3cDoc = w3cDom.fromJsoup(jsoupDoc);
    

    更新:

    【讨论】:

      【解决方案3】:

      To retrieve a jsoup document via HTTP,拨打Jsoup.connect(...).get()To load a jsoup document locally,拨打Jsoup.parse(new File("..."), "UTF-8")

      DomBuilder 的调用是正确的。

      当你说,

      我为此使用了一个可用的库 DOMBuilder,但是在解析时我 将 org.w3c.dom.Document 设为 null。

      我想你的意思是,“我为此使用了一个可用的库 DOMBuilder,但是在打印结果时,我得到了[#document: null]。”至少,这是我在尝试打印w3cDoc 对象时看到的结果——但这并不意味着该对象为空。我可以通过调用getDocumentElementgetChildNodes 来遍历文档。

      public static void main(String[] args) {
          Document jsoupDoc = null;
      
          try {
              jsoupDoc = Jsoup.connect("http://stackoverflow.com/questions/17802445").get();
          } catch (IOException e) {
              e.printStackTrace();
          }
      
          org.w3c.dom.Document w3cDoc= DOMBuilder.jsoup2DOM(jsoupDoc);
          Element e = w3cDoc.getDocumentElement();
          NodeList childNodes = e.getChildNodes();
          Node n = childNodes.item(2);
          System.out.println(n.getNodeName());
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-17
        • 2016-07-29
        • 2011-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-22
        • 1970-01-01
        相关资源
        最近更新 更多