xml的解析方式
解析方式为两种:
DOM(Document Object Model)解析:将整个xml文件加载到内存,形成一个DOM树
- 优点:能获取到整个DOM树的完整信息,通过document对象来对DOM树进行CRUD操作
- 缺点:由于是直接加载整个xml文件,当形成的DOM树太大时,会占用较多的内存资源
SAX(Simple API For Xml)解析:对xml进行逐行解析,逐行加载,需要哪行就加载哪行
- 优点:逐行加载,不太占用内存资源
- 缺点:无法获取整个DOM树对象,只能对xml数据进行查询,不能增删
xml常用的解析器
jaxp:是SUN公司提供的xml解析器,支持dom和sax这两种方式的解析
dom4j:是开源组织提供的xml解析器,性能是优于SUN公司提供的解析器的, 基于dom和sax这两种方式的综合解析方式
jsoup:主要是用来解析html的,但是由于html和xml的结构是一样的,所以也可以用来解析xml
使用demo4j对xml文件进行CRUD
首先获取根标签对象,对DOM树操作是基于root来进行的:
1 | public class demo{ |
读取JDBC.xml中的数据库信息:
1 | public static HashMap<String, String> select(){ |
在对xml文件进行增删改时,修改的是加载在内存中DOM树对象,在修改完成后,还要将DOM树对象写入到xml文件中:
1 | public static void saveXML(String path){ |
为JDBC.xml添加一个数据库信息:
1 | public static void add(){ |
修改JDBC.xml中的数据库信息:
1 | public static void update(){ |
删除JDBC.xml中的数据信息:
1 | public static void delete(){ |
通过XPATH的方式来获取标签对象
上面是通过根标签来获取DOM树中的node节点,dom4j还提供了以XPATH的方式来获取指定标签,这种方式更为灵活:
1 | public class demo{ |