Jsoup文件解析入门

XML文件解析器–Jsoup入门

概念:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。
      它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

导入jar包
快速入门步骤:
1. 导入jar包
2. 获取Document对象
3. 获取对应的标签Element对象
4. 获取数据,得到文本

   public static void main(String[] args) throws Exception{
		//定义xml文件路径
        String path = "Code//xml//demo.xml";
        //[1]获取document的对象
        Document doc = Jsoup.parse(new File(path), "utf-8");
        //[2]获取Element的对象
        //底层代码: class Elements extends ArrayList<Element>
        Elements es = doc.getElementsByTag("name");
        //[3]循环遍历集合 es
        for (Element e : es) {
            //得到文本
            String text = e.text();
            System.out.println("text = " + text);
        }
    }
上面是一个基础入门案例,通过static Document parse​(File in, String charsetName)该方法获取到
xml文件的路径并且指定编码格式。

	 对象的使用:
		1. Jsoup:工具类,可以解析html或xml文档,返回Document
			    parse:解析html或xml文档,返回Document
				 parse​(File in, String charsetName):解析xml或html文件的。
				 parse​(String html):解析xml或html字符串
				 parse​(URL url, int timeoutMillis):通过网络路径获取指定的html或xml的文档对象
		2. Document:文档对象。代表内存中的dom树
			 获取Element对象
				 getElementById​(String id):根据id属性值获取唯一的element对象
				 getElementsByTag​(String tagName):根据标签名称获取元素对象集合
				 getElementsByAttribute​(String key):根据属性名称获取元素对象集合
				 getElementsByAttributeValue​(String key, String value):根据对应的属性名和属性值获取元素对象集合
		3. Elements:元素Element对象的集合。可以当做 ArrayList<Element>来使用
		4. Element:元素对象
			1. 获取子元素对象
				 getElementById​(String id):根据id属性值获取唯一的element对象
				 getElementsByTag​(String tagName):根据标签名称获取元素对象集合
				 getElementsByAttribute​(String key):根据属性名称获取元素对象集合
				 getElementsByAttributeValue​(String key, String value):根据对应的属性名和属性值获取元素对象集合
			2.获取父元素对象
				Element	parent​():获取当前便签的父节点
			2. 获取属性值
				 String attr(String key):根据属性名称获取属性值
			3. 获取文本内容
				 String text():获取文本内容
				 String html():获取标签体的所有内容(包括字标签的字符串内容)
举例:
xml文档内容如下
<?xml version='1.0' encoding="utf-8" ?>
<lol>
    <hero id="中单">
        <name>托儿索</name>
        <age>3</age>
        <sex>男</sex>
    </hero>
    <hero id="上单">
        <name>小学生之手</name>
        <age>5</age>
        <sex>女</sex>
    </hero>
    <hero id="下单">
        <name>儿童劫</name>
        <age>9</age>
        <sex>未知</sex>
    </hero>
</lol>
通过以上的方法来解决下面两个问题
1.获取“上单”的信息(包括name,age,sex)
2.获取“儿童劫”的位置文本信息

public static void main(String[] args) throws IOException {
        System.out.println("------第一题--------------");
        String path = "myday12//src//xml/chaoshen.xml";
        //获取document对象
        Document doc = Jsoup.parse(new File(path), "utf-8");
        //根据对应的属性名和属性值获取元素对象集合
        Elements value = doc.getElementsByAttributeValue("id", "上单");
        //获取到文本值
        String vtext = value.text();
        System.out.println(vtext);

        System.out.println("------第二题---------");

        Elements name = doc.getElementsByTag("name");
        //遍历得到的elements集合
        for (Element element : name) {
        //通过equals方法判断获取到的name文本值是否为"儿童劫"
            if (element.text().equals("儿童劫")){
                String id = element.parents().attr("id");
                System.out.println("儿童劫:" + id);
            }
        }
      }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

睡前来杯海飞丝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值