Jsoup解析器

首先我们要先了解这是一个什么解析器,我们都学习过XML文件,XML文件在被约束之后,我们怎么在程序中解析它呢?
解析XML文件的方式:

1.DOM:把标记语言文档一次性加载到内存中,形成一个DOM树
		缺点:非常占内存,大约是文件大小的1000~10000;
		优点:操作简单,可以对文档进行CRUD操作,也就是增删改查操作
2.SAM:逐行读取文件,它基于事件驱动(因为逐行读取,所有对每一行的含义的解析难度就增大了)
		缺点:不可以修改文件,只可以读取文件
		优点:几乎不占内存,因为每一次读取文件只读取一行,并且读取完之后就弹出了

了解了XML文件的解析方式之后,我们来看一下常见的XML文件解析器

	1.JAXP:sun公司提供的解析器,两种解析思想都支持,但是不常用该解析器,可怜
	2.DOM4J:一款优秀的解析器
	3.JSOUP:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。
	它提供了一套	非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出
	和操作数据。
	4.PULL:Android操作系统的内置解析器,SAX方式的,毕竟手机内存非常珍贵

然后我们学习怎么去简单使用Jsoup解析器

jar包提取路径
提取码: brl9

public class JSoupDemo {
    public static void main(String[] args) throws IOException {
        //获取Document对象 根据
        //获取student.XML文件的path
        //获取SRC路径下的文件方式,--->CLassLoader  类加载器
        //这个文件路径是相对于SRC文件的
        String path =JSoupDemo.class.getClassLoader().getResource("student.xml").getPath();
        System.out.println(path);
        //解析XML文档,加载文件进内存,获取DOM树--->Document
        Document parse = Jsoup.parse(new File(path), "utf-8");
        //获取元素对象Element,它是一个ArrayList
        Elements elements = parse.getElementsByTag("name");
        System.out.println(elements.size());
        //获取第一个name 的Element对象
        Element element = elements.get(0);
        //打印这个对象的数据
        String name = element.text();
        System.out.println(name);
    }
}

上面的代码中获取Document对象使用的是Jsoup解析HTML,XML文档的一种方法,还有下面的两种方式:

parse(String HTML) 直接解析文档内容字符串,这种方法不常用,显然:太臃肿了
parse(URL url,int timeoutMillis):通过网络路径获取指定的HTML或XML文档,这种
是可以从网站中获取网页数据的

得到文档对象Document之后,我们就需要知道文档中存储的属性了

Element对象:
获取子元素对象:
	getElementsByTag(String tagName):根据标签名称获取元素对象集合(指定属性为ID)
	getElementsByAttribute(String key):根据属性名称获取元素对象集合
		getElementsByAttributeValue(String key,String value)根据对应属性名和属性值获取元素对象集合
	getElementByID(String id)    :根据ID获取唯一的元素对象
获取属性值;
	String attr(String key):根据属性名称获取属性值:
获取文本内容:
	String text():获取文本内容
	String html():获取标签体的所有内容,包括子标签的文本内容

这里要说明一下ELements对象,这些方法有一些是返回的这个对象,这个对象本质上其实就是一个ArrayList<\Element>集合,所以我们可以使用ArrayList集合的方法来查询集合中包含的Element对象.

下面说一下Node对象
这个对象是Element和Document对象的父类,它里面的方法在这两个对象中也是可以使用的,而Document是Element的子类

另外我们要了解一下快速查询方式:
虽然我们用上面的方式,层层获取对象,但是如果我们遇到一个复杂的XML文档,那我们的工作量就会变得很大,这个时候,我们要了解选择器的使用了

1.selector:选择器
	使用的方式,Elements   select(String cssQuery)
		语法:参考selector类中定义的语法
		详细的去看帮助文档
2.XPath
	导入包:JsoupXpath-0.3.2.jar
	查询W3CShool参考手册,使用XPATH的语法完成查询

在这里插入图片描述

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值