Jsoup方法

1.通过Jsoup来解析xml的步骤
1.导入jar包
2.获取Document对象
3.获取对应的标签Element对象
4.获取数据

代码如下:
Demo1.java

package main.java;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;
import java.net.URL;

/**
 * Jsoup快速入门
 */
public class Demo1 {
    public static void main(String[] args) throws IOException {
        //2.获取Document对象,根据xml文档获取
        //2.1获取student.xml的path
        String path = Demo1.class.getClassLoader().getResource("student.xml").getPath();
        //2.2解析xml文档,加载文档进内存,获取dom树--->Document
        Document document = Jsoup.parse(new File(path), "utf-8");
        //3.获取元素对象 Element
        Elements elements = document.getElementsByTag("name");

        System.out.println(elements.size());
        //3.1获取第一个name的Element对象
        Element element = elements.get(0);
        //3.2获取数据
        String name = element.text();
        System.out.println(name);
    }

}

student.xml







    
        zhangsan
        abc
        hehe
    

    
        lisi
        24
        female
    


效果:
Jsoup方法_第1张图片
总结:
解析的具体步骤在代码上方都有注释,可以看到xml中第二个name的值被打印出来。来说一下在操作中遇到的困难(本人使用的时Idea):首先要把所有的文件夹名称都改为英语(因为这里的编码方式是UTF-8,有中文会出现乱码)。其次需要注意一下这里的文件结构,如图所示:
Jsoup方法_第2张图片
resources文件夹放置需要解析的文件,java文件放置解析的具体步骤(注意这里的文件夹的类型都是不一样的需要格外注意)。resources和java文件都需要放在src文件夹之中。

2.归纳Jsoup的方法
在上述代码中

Document document = Jsoup.parse(new File(path), “utf-8”);

这句话是来获取Document对象的(也就是获取DOM树), 获取过程中用到了Jsoup.parse方法。
Jsoup.parse方法有很多重载下面我来介绍以下其中的三种:

1.*parse(File in,String charsetName):解析xml或html文件的。
这种方法就是上述代码种用到的方法,第一个参数为文件,第二个参数是需要解析的文件所使用的编码方式。

2.parse(String html):解析xml或html字符串
这种方式需要传入字符串内容,也就是把解析文件所有的内容都当作字符串传入进去。

代码如下:

package main.java;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;
import java.net.URL;

/**
 * Jsoup对象功能
 */
public class Demo2 {
    public static void main(String[] args) throws IOException {
        //2.1获取student.xml的path
        String path = Demo2.class.getClassLoader().getResource("student.xml").getPath();

//        2.parse(String html):解析xml或html字符串
        String str = "\n" +
                "\n" +
                "\n" +
                "    \n" +
                "        zhangsan\n" +
                "        abc\n" +
                "        hehe\n" +
                "    \n" +
                "\n" +
                "    \n" +
                "        lisi\n" +
                "        24\n" +
                "        female\n" +
                "    \n" +
                "\n" +
                "";
        Document document = Jsoup.parse(str);
        System.out.println(document);
    }

}

效果如下:



 
 
   
    
    
     zhangsan
     
    
     abc
     
    
     hehe
     
    
    
    
     lisi
     
    
     24
     
    
     female
     
    
  
 

可以看到xml文件种的所有内容又被打印出来,可以证实Document确实获得了DOM树。

3.parse(URL url,int timeoutMillis):通过网络路径获取指定的html或xml的文档对象
这种方式传入的第一个参数是具体网站的链接,第二个参数是延迟的时间。

代码如下:

package main.java;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;
import java.net.URL;

/**
 * Jsoup对象功能
 */
public class Demo2 {
    public static void main(String[] args) throws IOException {
        //2.1获取student.xml的path
        URL url = new URL("https://www.baidu.com/"); //代表网络中的资源路径
        Document document = Jsoup.parse(url,10000);
        System.out.println(document);
    }
}

效果太长了,简单来说就是https://www.baidu.com这个页面的的代码(在该页面种按F12可以看到)。这种方法在日后可以用来做网站爬虫。

你可能感兴趣的:(xml)