[java] jsoup使用简介-汇率换算器实现-插曲2

 

[java] jsoup使用简介-汇率换算器实现-插曲2

3 解释遍历一个html文档和html字符串

传送门 http://www.open-open.com/jsoup/parsing-a-document.htm http://www.open-open.com/jsoup/parse-document-from-string.htm

原文中给出的例子如下:

String html = "<html><head><title>First parse</title></head>"
+ "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);

单单这个示例, 就引出了以下问题:

  1. 能够直接运行吗?
  2. 直接输出Document的结果?

3.1 运行环境设置及运行

下载jsoup.jar包, 将其放置到yourpath, 编写代码的时候具体import的内容, 应该根据jsoup的tree 进行import, 如上面的例子中使用了 JsoupDocument, 那么在文件的开头就应该有这样两句话:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

剩下的完整的内容如下:

// 再简单地将示例放入main函数中
public class JsoupDemo{
public static void main(String[] args)
throws Exception {
// Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
String html = "<html><head><title>First parse</title><head>"
+ "<body><p>Parsed Html into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
System.out.println(doc);
}
}

3.2 直接输出Document

编译运行如下(linux):

javac -classpath yourpath/jsoup.jar JsoupDemo.java
java -cp yourpath/jsoup.jar:./ JsoupDemo

最后可以发现通过parse处理后输出地结果为格式化后的html代码:

<html>
<head>
<title>First parse</title>
</head>
<body>
<p>Parsed Html into a doc.</p>
</body>
</html>

3.3 parse(String html, String baseUri)中baseUri具体指什么

如在html中出现了相对路径, 如 href="page/a.html", 那么就会被解析为 href="$baseUri/page/a.html" 如将示例进行修改为:

String html = "<html><head><title><a href=\"/page/a.html\">标题</a></title></head></html>"

然后调用:

Document doc = Jsoup.parse(html, "http://example.com/");

最后输出的doc依然和String html相同. 那么这个额外的baseUri是怎么起作用的呢. google了一下, 参见: stackoverflow中的解释 , 可见需要下述的方式才能够起作用:

for (Element link : doc.select("a")) {
System.out.println(link.absUrl("href"));
}

4 解释一个body片断

传送门 http://www.open-open.com/jsoup/parse-body-fragment.htm

Jsoup.parseBodyFragment 方法可以将字符串中的<html><head>标签忽略, 剩下的内容都为body部份. 可以将示例中的String html改为下面的方式, 并比较两者之间不同的输出结果:

String html = "<html><head><title>what</title></head><body><div><p>Lorem ipsum.</p></body></html>";

5 从一个URL, 文件加载一个Document对象

传送门 http://www.open-open.com/jsoup/load-document-from-url.htm http://www.open-open.com/jsoup/load-document-from-file.htm

通过以下尝试, 得知Jsoup在connect过程中, 已经对html文档的相应的编码方式进行了处理:

Document doc = Jsoup.connect("http://www.baidu.com/").get();
System.out.println(doc)

6 其他更多文档中的内容请参见

7 其中常用的数据结构简介

 

7.1 Element

html的element包括形如: <tag attribute="" id="" class="">text</tag> 的部份.

常用的方法有:

7.2 Elements

表示结构相同的element的集合

常用的方法:

Date: 2014-05-14 Wed

Author: Zhong Xiewei

Org version 7.8.11 with Emacs version 24

Validate XHTML 1.0

最新文章

  1. 如何创建一个AJAX-Enabled WCF Service
  2. nginx中相关配置
  3. Spring.Net学习之简单的知识点(一)
  4. Debian下安装vim
  5. zabbix 修改管理员用户密码
  6. Retrofit2文件上传下载及其进度显示
  7. poj 3625 Building Roads
  8. mysql mac启动
  9. Excel01-不同的单元格输入同一数据
  10. 解密TTY
  11. 响应式菜单栏: bootstrap + jQuery
  12. Golang 入门系列(一)Go环境搭建
  13. [LeetCode&amp;Python] Problem 594. Longest Harmonious Subsequence
  14. AD预测论文研读系列1
  15. [No000012B]WPF(3/7)有趣的边框和画刷[译]
  16. [剑指Offer]48-最长不含重复字符的子字符串(递归思想,循环实现)
  17. rtorrent - 强大的命令行BT客户端
  18. ESXI 6.5 从载到安装
  19. 计算概论(A)/基础编程练习1(8题)/5:鸡兔同笼
  20. 任务调度的方式:Timer、ScheduledExecutorService、spring task、quartz、XXL-JOB、Elastic-Job

热门文章

  1. objective-c(内存管理)
  2. 使用ACE_Get_Opt解析命令行
  3. 《OOC》笔记(3)——C语言变长参数va_list的用法
  4. 说说设计模式~组合模式(Composite)
  5. [Java面试五]Spring总结以及在面试中的一些问题.
  6. [Spring框架]Spring开发实例: XML+注解.
  7. Linux初学 - 文件夹及文件操作
  8. iOS-网络爬虫
  9. iOS-推送通知详解
  10. 将图片的二进制字节 在HTML页面中显示