1.xml的约束的种类:一般有dtd以及xsd,dtd对于元素的格式并无法规定,如格式而xsd对于
要会读懂名称空间,看懂前缀即可。
2.xml解析的方式:有dom以及sax,sax是逐行读取,然后会释放内存资源,所以不适合CRUD,通常用于移动端或者小型设备,优点是占内存少。dom即是前面javaScript的dom技术,把一颗dom树读取进内存,
缺点内存占用大,优点crud方便,多用于服务器。
2.1dom的实现,常见xml的解析器:分别有jaxp,dom4j(最好用),jsoup以及pull(移动端,sax方式)
这里我们使用的是jsoup:
步骤如下:导入jar包,获取doc对象,获取ele对象,读取数据即可。
小例子:
public class JsoupDemo {
public static void main(String[] args) throws IOException {
String path = Jsoup.class.getClassLoader().getResource("student.xml").getPath();
Document document = Jsoup.parse(new File(path), "utf-8");
Elements name = document.getElementsByTag("name");
System.out.println(name.size());
}
}
小结:
Jsoup.parse的参数可以有URL+超时时间,文件+格式,或者直接一整串xml内容,即不用外部xml文件。
其中URL+超时时间 即是爬虫中常用的方式,利用jsoup爬取解析xml/html。
Jsoup的文档要会看,里面定义了一些接口方便操作获取html里面的元素,注意各个对象的继承关系,这个关系在Html DOM下面好像没有这种特别明显的关系
在jsoup下却十分分明,理解起来,document每次都往上获取内容元素,即每个元素都会有Node。
java.lang.Object
org.jsoup.nodes.Node
org.jsoup.nodes.Element
org.jsoup.nodes.Document(类继承关系)