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

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

    java字符串验证工具

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

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

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

    将html读入字符串操作

    java实现可以将html文件源码读入字符串操作,经过测试,可以实现。

    Java使用dom4j实现字符串(html的字符串)的编辑

    1、使用Document和Xpath进行对字符串进行操作 2、前端页面做锚点的效果 3、使用Xpath语法进行对字符串的做处理 4、富文本的字符串保存做二次的编辑 需求: 截取&lt;p&gt;&lt;/p&gt;里面的文字,并且找对应的文字进行匹配,如...

    javascript实现的字符串转换成数组操作示例

    本文实例讲述了javascript实现的字符串转换成数组操作。分享给大家供大家参考,具体如下: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;www.jb51.net ...

    在Java中轻松将HTML格式文本转换为纯文本(保留换行)

    Jsoup是HTML解析器 lang和lang3这两个包里有转换所需的工具类 org.jsoup jsoup 1.11.3 commons-lang commons-lang 2.6 org.apache.commons commons-lang3 3.4 第二步:直接使用即可: import org.apache....

    使用java-jsoup解析html页面内容,爬取想要的信息(如号段)

    jsoup 可以从包括字符串、URL 地址以及本地文件来加载 HTML 文档,并生成 Document 对象实例。 如:我们可以通过访问号段查询页面,获取到手机号段信息,并提取信息存储供自身的业务使用。 附件提供了详细的介绍,并...

    jsoup:Java HTML 解析器

    从 URL、文件或字符串中抓取并解析HTML 使用 DOM 遍历或 CSS 选择器查找并提取数据 操作HTML 元素、属性和文本 根据安全列表清理用户提交的内容,以防止 XSS 攻击 输出整洁的 HTML jsoup 旨在处理各种常见的 HTML;...

    javascript操作字符串的原生方法

    join([分隔符])数组元素组合为字符串 toString()以字符串表示数组 reverse()数组反转–改变原数组本身 valueOf()返回数组值 代码如下: &lt;html&gt; &lt;head&gt; [removed] var fruits= [“苹果”,”鸭梨”,”...

    jsoup基于java爬虫项目

    1)从一个URL,文件或字符串中解析HTML 2)使用DOM或CSS选择器来查找、取出数据 3)可操作HTML元素、属性、文本 注意:jsoup是基于MIT协议发布的,可放心使用于商业项目。 Jsoup的主要功能 1)从一个URL,文件...

    java源码包---java 源码 大量 实例

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    StringUtil.java

    java字符串操作常用的方法,包括了截取字符串里的图片链接, 从html中提取纯文本,把字符串转换成16进制颜色

    JAVA_API1.6文档(中文)

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    Thymeleaf Property Extractor:用Java编写的Thymeleaf所有本地化字符串的提取器-开源

    Thymeleaf属性提取器(简称ThExtractor)是用Java编写的应用程序,它给定了文件夹或html文件,将每个Thymeleaf本地化标签(例如:th:text =“#{myString}”)提取到属性文件中,以简化操作并加快Spring Web应用的...

    java/ap/php解密查找替换工具

    支持GBK/Unicode/UTF8编码的htm、html、asp、java、php等文件,可自定义所支持的文件类型 ,支持16进制替换,支持单行和多行以及段落替换,支持特征替换和提取,支持正则替换,支持 多规则同时替换并可以行导入...

    java源码包4

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    java源码包3

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    JAVA上百实例源码以及开源项目源代码

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

Global site tag (gtag.js) - Google Analytics