【问题标题】:Java HTML ObjectJava HTML 对象
【发布时间】:2013-08-05 11:28:24
【问题描述】:

我有一些复杂、肮脏的 html 代码。有没有一个很好的 HTML 解析器,我可以将 HTML 代码用作 Java 对象?

例如我想访问此代码:

<html>
  <body>
   <div id='foo'>
     <p id='bar'></p>
   </div>
  </body>
</html>

喜欢通过 DOM:

[File/Code].getElementById('foo').appendText('bla');
[File/Code].getElement(Element.DIV).getElement(ELEMENT.P).getValue();
//etc...

有人有想法吗?

或者Java中有DOM(this does not help :()?

问候

【问题讨论】:

  • 看看JSoup
  • 是的,我搜索的是 jsoup :)

标签: java html parsing dom object


【解决方案1】:

试试http://jsoup.org/。它可以处理非常破碎的html。

例子:

public static void main(String[] args)
{
    Document document = Jsoup.parse("<html>" +
            "  <body>" +
            "   <div id='foo'>" +
            "     <p id='bar'>TEST</p>" +
            "   </div>" +
            "  </body>" +
            "</html>");

    System.out.println("Add blah to the Element with ID: foo");
    Element foo = document.getElementById("foo");
    foo.appendText("blah");

    System.out.println(document.html());

    System.out.println("Get the content of a div having a p:");
    for (Element div : document.getElementsByTag("div"))
    {
        for (Element p : div.getElementsByTag("p"))
        {
            System.out.println(p.text());
        }

    }
}

Maven

<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.7.2</version>
</dependency>

【讨论】:

  • @criztovyl_needs_help 你需要更多信息来接受这个答案吗?
  • 我在没有更多信息的情况下接受这个答案,现在使用 jsoup :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 2018-07-24
  • 2011-01-08
  • 1970-01-01
  • 2016-05-30
相关资源
最近更新 更多