Java HTML 对象

标签 java html parsing dom object

我有一些复杂、肮脏的 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 :()吗?

问候

最佳答案

只要给 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>

关于Java HTML 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18046607/

相关文章:

javascript - 将工具提示箭头定位在左侧而不是底部

html - 更改 select 标签中单独选项的 css 字体系列

html - div不继承子div的大小

c# - 如何解析相对时间?

java - SAX 解析器。如何停止 SAX 解析器连接到 Internet?

java - Android GPU 分析 - OpenGL 动态壁纸很慢

java - 在不使用 contains() 方法的情况下添加到集合的单元测试

java - 我需要一个工具来解析 Lua 表,最好是用 Ruby 或 Java

java - 自动出现 JTextField

java - 以C++方式思考Java引用