xml: jsoup解析器

Jsoup解析XML文档指南
本文介绍了Jsoup作为工具类如何解析XML文档,包括Jsoup、Document、Elements、Element等核心对象的使用方法,并提供了代码演示,展示了如何操作XML节点。

1. Jsoup相关对象的使用方法:

1. Jsoup: 工具类, 可以解析html或xml文档, 返回Document

2. Document: 文档对象, 代表内存中的dom树

3. Elements: 元素Element对象的集合. 可以当作ArrayList< Element>使用
4. Element: 元素对象
在这里插入图片描述
5. Node: 节点对象

6. 快捷查询方式

2. 代码演示:

users.xml

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="test/css" href="a.css" ?>

<users>
    <user id="1">
        <name id="zhangsan_name">
            <xing></xing>
            <ming></ming>
        </name>
        <age>23</age>
        <gender>male</gender>
    </user>

    <user id="2">
        <name>lisi</name>
        <age>24</age>
        <gender>female</gender>
        <code>
            <![CDATA[
show here!
            ]]>
        </code>
    </user>
</users>

JsoupDemo.java

package com.ujn.preview.xml.demo;

import cn.wanghaomiao.xpath.model.JXDocument;
import cn.wanghaomiao.xpath.model.JXNode;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.junit.Test;

import java.io.File;
import java.util.List;

public class JsoupDemo {
    public static void main(String[] args) throws Exception {
        /*  获取path和Document对象
        //获取users.xml的path
        //文件在src中直接写名称, 放在src的子文件夹中从com开始写路径
        String path = JsoupDemo1.class.getClassLoader().getResource("com/ujn/preview/xml/demo/users.xml").getPath();
        //System.out.println(path);
        Document doc = Jsoup.parse(new File(path), "utf-8");//获取document对象, 加载文件进内存, 获取dom树
        //System.out.println(doc);//输出字符串表示形式的xml文档
        */

        /*  测试doc对象的使用      返回Elements和Element
        Elements eles = doc.getElementsByTag("name");//获取name标签的对象集合
        Element e = doc.getElementsByTag("name").get(0);
        System.out.println(eles.get(0));
        */

        /*  测试selector选择器:
        Elements el = doc.select("#1");//获取id=1的所有子标签
        System.out.println(el);
        Elements el2 = doc.select("user[id='1'] > name > xing");//获取id = '1'的子标签中的姓名标签中的xing标签
        System.out.println(el2.text());
        */

        /*  测试Xpath查询:
        JXDocument jxdoc = new JXDocument(doc);//根据Document对象创建JXDocument对象

        List<JXNode> nodes = jxdoc.selN("//user");//查询所有的user标签
        for (JXNode js : nodes){
            System.out.println(js);
        }
        List<JXNode> nodes1 = jxdoc.selN("//user/name[@id='zhangsan_name']");//查询所有的user下的name标签(id为zhangsan_name)
        for (JXNode js : nodes){
            System.out.println(js);
        }
        */
    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值