java使用jodd操作html

简介: java使用jodd操作html


快乐就像香水,不是泼在别人身上,而是洒在自己身上。——拉尔夫·沃尔多·爱默生

https://github.com/oblac/jodd

https://jodd.org/

Jodd 是一个开源的 Java 工具库,提供了一系列简化和增强 Java 开发的工具,包括但不限于对象操作、数据库连接、邮件发送等功能。JerryParser 是 Jodd 中处理 HTML 的重要工具。

JerryParser 基于 CSS 选择器,允许开发者使用类似 jQuery 的语法来查找、修改和操纵 HTML 元素。这样的设计使得处理 HTML 文档就像在编写 jQuery 脚本一样简单。

主要功能:

  • 查找元素:通过 CSS 选择器快速定位页面上的元素。
  • 修改内容:轻松添加、删除或修改元素的内容和属性。
  • 事件处理:支持基本的事件绑定,如点击、加载等。

安装:

首先,确保你的项目中已经包含了 Jodd 库。如果还没有,可以通过 Maven 添加依赖:

<dependency>
    <groupId>org.jodd</groupId>
    <artifactId>jodd-all</artifactId>
    <version>最新版本号</version>
</dependency>

基本用法

解析一个简单的 HTML 页面

import jodd.jerry.Jerry;
import jodd.lagarto.dom.Node;
public class Main {
    public static void main(String[] args) {
        String html = "<html><head><title>Test</title></head>"
                      + "<body><p id='p1'>Hello, world!</p><a href='http://example.com'>Link</a></body></html>";
        Jerry doc = Jerry.jerry(html);
        String title = doc.$("title").text();
        System.out.println("Title: " + title);
        Jerry paragraph = doc.$("#p1");
        System.out.println("Paragraph text: " + paragraph.text());
        Jerry link = doc.$("a");
        System.out.println("Link: " + link.attr("href"));
    }
}

输出结果:

Title: Test
Paragraph text: Hello, world!
Link: http://example.com

使用 CSS 选择器修改 HTML

Jerry doc = Jerry.jerry(html);
doc.$("body").append("<div>New Div</div>");
System.out.println(doc.html());

这将在 <body> 标签内添加一个新的 <div>

绑定事件

doc.$("a").on("click", new JerryFunction() {
    @Override
    public boolean onEvent(Jerry $this, JerryEvent event) {
        System.out.println("Clicked: " + $this.attr("href"));
        return true;
    }
});
相关文章
|
7天前
|
分布式计算 DataWorks Java
DataWorks操作报错合集之在使用MaxCompute的Java SDK创建函数时,出现找不到文件资源的情况,是BUG吗
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
29 0
|
7天前
|
Java Android开发
java利用xml-rpc协议操作wordpress博客
java利用xml-rpc协议操作wordpress博客
13 1
|
7天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(&lt;https://www.sojump.com/m/2792226.aspx/&gt;)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
26 0
|
2天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十九)-java+ selenium自动化测试-隐藏元素定位与操作(详解教程)
【5月更文挑战第13天】本文主要讨论了在Selenium自动化测试中如何处理前端隐藏元素的问题。隐藏元素通常是通过`type="hidden"`或`style="display: none;"`属性实现的,它们在页面上不可见,但仍然存在于HTML代码中。Selenium可以定位到这些隐藏元素,但无法直接进行点击、输入等操作,会报错“ElementNotInteractableException”。
24 3
|
3天前
|
JavaScript 前端开发 测试技术
《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)
【5月更文挑战第12天】本文介绍了WebDriver中用于判断元素状态的三个方法:`isEnabled()`、`isSelected()`和`isDisplayed()`。`isSelected()`检查元素是否被选中,通常用于勾选框。`isDisplayed()`则用来判断元素是否在页面上可见。`isEnabled()`方法确定元素是否可操作,例如是否能点击或输入内容。
14 1
|
7天前
|
监控 Java
Java一分钟之-NIO:非阻塞IO操作
【5月更文挑战第14天】Java的NIO(New IO)解决了传统BIO在高并发下的低效问题,通过非阻塞方式提高性能。NIO涉及复杂的选择器和缓冲区管理,易出现线程、内存和中断处理的误区。要避免这些问题,可以使用如Netty的NIO库,谨慎设计并发策略,并建立标准异常处理。示例展示了简单NIO服务器,接收连接并发送欢迎消息。理解NIO工作原理和最佳实践,有助于构建高效网络应用。
12 2
|
7天前
|
安全 Java 数据安全/隐私保护
Java一分钟之-Java反射机制:动态操作类与对象
【5月更文挑战第12天】本文介绍了Java反射机制的基本用法,包括获取Class对象、创建对象、访问字段和调用方法。同时,讨论了常见的问题和易错点,如忽略访问权限检查、未捕获异常以及性能损耗,并提供了相应的避免策略。理解反射的工作原理和合理使用有助于提升代码灵活性,但需注意其带来的安全风险和性能影响。
26 4
|
7天前
|
Java API
Java操作elasticsearch
Java操作elasticsearch
12 0
|
7天前
|
NoSQL Java Redis
在Java中操作Redis
在Java中操作Redis
13 0
|
7天前
|
SQL Java 关系型数据库
【JAVA基础篇教学】第十六篇:Java连接和操作MySQL数据库
【JAVA基础篇教学】第十六篇:Java连接和操作MySQL数据库