`
zc985552943
  • 浏览: 291060 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Babe4ca6-5e6f-33aa-9078-762ee3ccfb7e
云计算--hadoop
浏览量:11871
5e98c2c1-2a82-3388-bc80-7fca0170bb12
redis解说
浏览量:27150
088014c7-4d3f-39ce-b72e-4ebe7046a134
MongoDB读书笔记
浏览量:16012
D2b74847-c860-3e26-96fe-3fa4498d6348
Maven读书笔记
浏览量:27242
688db20f-402d-3a1d-8188-d6153d6c7465
Java通信
浏览量:13679
社区版块
存档分类
最新评论

java操作html字符串

阅读更多

业务描述:在我们系统中要这样一个需求,我们会将html当作字符串保存在数据库中,然后再后期通过Java需要操作这个html比如增加一个文件框,改变其结构,添加事件。

解决方案:jsoup Java HTML解析器

使用方法:

1.导入jar包。可以使用maven帮你下载这个jar包和源码

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

 2.将字符串变成HTML文档结构

Document doc = Jsoup.parse(html);

 有了上面的方法,就可以将一个字符串变成一个document文档结构,然后就可以类似于jQuery的方法来选择元素,添加元素,设置属性等等操作。

3.查找元素

(都是见名知意的方法,多好……)

getElementById(String id)
getElementsByTag(String tag)
getElementsByClass(String className)
getElementsByAttribute(String key) (and related methods)
兄弟节点: siblingElements(), firstElementSibling(), lastElementSibling(); nextElementSibling(), previousElementSibling()
层级节点: parent(), children(), child(int index)

4.获取元素属性

attr(String key)获取属性attr(String key, String value)设置属性
attributes()获取所有属性
id(), className() and classNames()
text()获取文本内容text(String value) 设置文本内容
html()获取元素内HTMLhtml(String value)设置元素内的HTML内容
outerHtml()获取元素外HTML内容
data()获取数据内容(例如:script和style标签)
tag() and tagName()

5.设置html

A.append(String html)
Add the supplied HTML to the end of each matched element's inner HTML.(结尾插)
B.prepend(String html)
Add the supplied HTML to the start of each matched element's inner HTML.(头插)
C.appendText(String text);prependText(String text)
Create and append a new TextNode to this element.(插入或者创建文本节点)
D.appendElement(String tagName), prependElement(String tagName)
E.html(String value)

6.选择器

A.Selector选择器概述
tagname: 通过标签查找元素,比如:a
ns|tag: 通过标签在命名空间查找元素,比如:可以用 fb|name 语法来查找 <fb:name> 元素
#id: 通过ID查找元素,比如:#logo
.class: 通过class名称查找元素,比如:.masthead
[attribute]: 利用属性查找元素,比如:[href]
[^attr]: 利用属性名前缀来查找元素,比如:可以用[^data-] 来查找带有HTML5 Dataset属性的元素
[attr=value]: 利用属性值来查找元素,比如:[width=500]
[attr^=value], [attr$=value], [attr*=value]: 利用匹配属性值开头、结尾或包含属性值来查找元素,比如:[href*=/path/]
[attr~=regex]: 利用属性值匹配正则表达式来查找元素,比如: img[src~=(?i)\.(png|jpe?g)]
*: 这个符号将匹配所有元素

B.Selector选择器组合使用
el#id: 元素+ID,比如: div#logo
el.class: 元素+class,比如: div.masthead
el[attr]: 元素+class,比如: a[href]
任意组合,比如:a[href].highlight
ancestor child: 查找某个元素下子元素,比如:可以用.body p 查找在"body"元素下的所有 p元素
parent > child: 查找某个父元素下的直接子元素,比如:可以用div.content > p 查找 p 元素,也可以用body > * 查找body标签下所有直接子元素
siblingA + siblingB: 查找在A元素之前第一个同级元素B,比如:div.head + div
siblingA ~ siblingX: 查找A元素之前的同级X元素,比如:h1 ~ p
el, el, el:多个选择器组合,查找匹配任一选择器的唯一元素,例如:div.masthead, div.logo

C.伪选择器selectors
:lt(n): 查找哪些元素的同级索引值(它的位置在DOM树中是相对于它的父节点)小于n,比如:td:lt(3) 表示小于三列的元素
:gt(n):查找哪些元素的同级索引值大于n,比如: div p:gt(2)表示哪些div中有包含2个以上的p元素
:eq(n): 查找哪些元素的同级索引值与n相等,比如:form input:eq(1)表示包含一个input标签的Form元素
:has(seletor): 查找匹配选择器包含元素的元素,比如:div:has(p)表示哪些div包含了p元素
:not(selector): 查找与选择器不匹配的元素,比如: div:not(.logo) 表示不包含 class=logo 元素的所有 div 列表
:contains(text): 查找包含给定文本的元素,搜索不区分大不写,比如: p:contains(jsoup)
:containsOwn(text): 查找直接包含给定文本的元素
:matches(regex): 查找哪些元素的文本匹配指定的正则表达式,比如:div:matches((?i)login)
:matchesOwn(regex): 查找自身包含文本匹配指定正则表达式的元素
注意:上述伪选择器索引是从0开始的,也就是说第一个元素索引值为0,第二个元素index为1等


7.更多细节查看:

http://www.open-open.com/jsoup/parsing-a-document.htm

 

1
2
分享到:
评论

相关推荐

    java 分割字符串

    在Java编程语言中,分割字符串是一项常见的操作,它允许我们将一个长字符串分解成多个子字符串,每个子字符串对应原字符串中的某个部分。这通常通过使用`String`类提供的`split()`方法来完成。本篇文章将深入探讨...

    JAVA 从一个字符串中删除指定字符

    在Java编程语言中,删除字符串中的指定字符...总的来说,理解和掌握Java中的字符串操作,特别是删除指定字符或子字符串,是Java编程的基础。同时,了解过时的技术如Applet,也有助于理解Java历史和Web应用的发展历程。

    java字符串处理输入一个字符串和一个字符后,原字符串中所有该字符将被删除并显示出结果

    在Java编程语言中,字符串处理是一项基础且重要的任务。在这个特定的场景中,我们需要创建一个Applet程序,它能够接收用户输入的字符串和一个字符,然后从原始字符串中删除所有出现的指定字符,并显示处理后的结果。...

    Freemarker操作字符串

    在本文中,我们将深入探讨如何使用FreeMarker来操作字符串。 FreeMarker的工作原理是将模板(HTML或XML文件)与数据模型(通常是Java对象)相结合,生成最终的输出。模板中包含了可替换的占位符,这些占位符由...

    java字符串编码转换

    在Java中,字符串的处理是非常常见的操作之一,而字符编码是确保数据正确显示的关键因素。本篇文章将重点介绍Java中字符串编码的转换方法及其在Web环境中的应用。 #### 二、Java中的字符串与字符编码 在Java中,`...

    5统计某个字符串中大小写字母A或a出现的次数java

    在Java中,字符串是不可变对象,我们可以使用`String`类来创建和操作字符串。对于字符计数,我们可以遍历整个字符串,检查每个字符是否是我们感兴趣的"A"或"a"。 以下是一个简单的Java代码示例,用于完成此任务: ...

    Java代码小工具(长文本字符串转换)

    在编写Java代码时,如果字符串过长,比如长篇幅的HTML代码或者SQL语句,就很难用一对双引号括起来,因为在java中,字符串常量是不能换行的。这种初期开发时,临时模拟中间数据测试非常不方面。本工具用于把多行长...

    java生成二维码以及二维码转base64字符串给前端

    在Java开发中,生成二维码和将二维码转换为Base64字符串是常见的需求,尤其是在与前端交互时。这个项目提供了一种方便的方式,通过Maven依赖来实现这些功能,并且包括了一个工具类,使得操作更加简单易用。接下来,...

    java字符串验证工具

    String 字符串操作工具类,sql防注入方法 过滤通过页面表单提交的字符 用特殊的字符连接字符串 将字符串数组转换为逗号链接的字符串,并且去掉最后一个逗号 分割字符串 字符串字符集转换 编码转换方法 将html文档...

    逐个替换字符串中的指定字符

    字符串操作包括创建、拼接、分割、查找、替换等。其中,“替换”是常见且非常有用的操作之一,它允许我们修改字符串中的某些部分。例如,在网页开发中,可能需要将用户输入中的某些字符转换为HTML实体,或者在文本...

    javasrcipt去字符串空格

    在JavaScript开发过程中,经常需要处理字符串数据,其中就包括了对字符串中的空格进行操作。本篇文章将详细介绍如何在JavaScript中去除字符串中的空格,并探讨不同的方法及其适用场景。 #### 一、背景介绍 在实际...

    jsp页面截取字符串

    在JavaServer Pages (JSP) 中,字符串截取是一项常见的任务,特别是在处理用户输入或显示数据时。JSP 提供了内置对象和脚本元素来处理字符串操作,其中包括字符串截取。下面我们将深入探讨如何在 JSP 页面中进行字符...

    java将html文件生成word文件

    调用其convert方法,传入HTML字符串和Word文档对象,将HTML内容导入到Word文档中。 ```java WordprocessingMLPackage wordDoc = WordprocessingMLPackage.createPackage(); PlutoConverter plutoConv = new ...

    SQL2JAVA-java字段串代码拼接小工具

    在Java中,有多种方式可以实现字符串拼接,比如使用`+`操作符,但当拼接的字符串数量较多时,这种方式的效率较低。因此,更推荐使用`StringBuffer`或`StringBuilder`类,它们提供了一种可扩展且高效的字符串操作方法...

    java中html转word方法以及用到的jar包

    这个示例中,我们首先使用jsoup解析HTML字符串,然后遍历每一个元素。如果元素是`img`,则下载图片并将其添加到Word文档中。对于文本元素,我们直接将其文本添加到Word文档的段落中。 请注意,这个例子简化了许多...

    json字符串转table字符串

    在Java编程中,将JSON字符串转换为表格(Table)格式,可以方便地进行数据展示或进一步处理,尤其当数据量较大且结构化时,表格形式更易于理解。这个资源提供的功能就是解决这样的问题,它能够帮助开发者将动态获取...

    js以逗号分隔方式添加删除字符串

    `字符串添加操作.html`可能包含了一个实际示例,演示如何将新字符串添加到已有的逗号分隔字符串中。`运行情况.jpg`可能显示了不同操作前后的结果对比。而`js`文件可能包含了实现这些功能的完整代码,包括添加和删除...

    Java实现HTML和RTF格式的互转

    这涉及到解析RTF控制字和特殊字符,转换为HTML标签。同样,上述提到的库可以帮助完成这个任务,或者可以使用其他库如RTFParserKit,它专为解析RTF文件设计。 至于HTML到PDF的转换,Java提供了许多强大的库,如iText...

    Java数据传输之消息字符串应用

    本篇文章将深入探讨Java如何处理和利用消息字符串进行数据传输,结合源码分析与实用工具的使用,帮助开发者更好地理解和实践这一核心概念。 一、Java消息字符串基础 消息字符串通常指的是以文本形式传输的数据,...

    ParamUtil.rar_ParamUtil_java 字符串_paramUtil.java_字符串 js

    字符串处理程序,有对字符串各种操作的方法,如:随机数发生器,左填充char,右填充char,得到语言配置,读配置文件属性值,url编码,url编码解码,html编码,sql特殊字符去除函数,字符串到js中冲突去除函数,删除...

Global site tag (gtag.js) - Google Analytics