解析XML方式
解析XML文档的思想一共有两大类,分别是DOM和SAX。
DOM:将标记语言文档一次加载到内存,在内存中形成一颗DOM树,优点是操作方便,可以进行所有操作。
缺点就是占用内存资源实在是太多了。非常消耗内存。
SAX:逐行读取,基于事件驱动的。优点是:基本不占内存,很适用于内存较小的设备。缺点是:只能读取,不能生成XML文档。
服务器端一般都是用DOM的思想,所以我们今天学习DOM思想
常见的解析器
解析器,有JAXP,这个是sun公司提供的,支持dom和sax两种思想,不过因为太老了,所以已经成为了辣鸡。
第二种,就是DOM4J这个是非常优秀的,大多数时候都学习它
第三种,就是Jsoup,这个东西本来是用来解析HTML的,不过说实话,HTML不过就是规定约束文件的XML而已,所以Jsoup也可以用来解析XML
Jsoup快速入门
1.导入jar包
2.获取Document对象
3.获取Element对象(对应的标签)
4.获取数据
这些看起来好像和DOM4J没什么区别呀
import org.jsoup.Jsoup;
import java.io.File;
import java.io.IOException;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Main{
public static void main(String[] args) {
String path=Main.class.getClassLoader().getResource("student.xml").getPath();
//解析XML文档,加载文档进内存,获取DOM树
try {
Document document=Jsoup.parse(new File(path),"utf-8");
Elements elements=document.getElementsByTag("name");
System.out.println(elements.size());
Element element=elements.get(1);
System.out.println(element.text());
} catch (IOException e) {
e.printStackTrace();
}
}
}