使用dom4j对xml文件进行读取和输出操作

1.xml文件的读取

    读取xml文件的方式有两种,一种是面向模型的DOM方式,一种是面向事件的SAX方式


    DOM方式原理:一次性的将xml文档加入内存,在内存中形成一颗dom树,然后通过语言对树的节点进行操作。

   显然这种操作查找元素快,但是一次性的将文件加载进来,要是小还行,文件大的时候会增大内存负担的,因此这种方式最好是解析小的xml文件的时候用


   SAX方式原理:边读边解析,按照从做往右从上往下的顺序解析。

   由于解析过的节点不能再次利用,要想使用还得再次解析,所以效率相对来说比较低,但只有事件触发了才会去读取文件,所以内存不会很大。

   两种方式,各有优缺点,谁也不能代替谁,举个简单的例子吧,就像生活中的自行车无法取代汽车,汽车无法取代自行车一样,两者各有优势。根据具体需求选择。


2.我们来看一个案例,首先是对maven的pom文件配置

   <dependency>
            <groupId>jaxen</groupId>
            <artifactId>jaxen</artifactId>
            <version>1.1-beta-11</version>
                <exclusions>
                <exclusion>
                    <groupId>xerces</groupId>
                    <artifactId>xercesImpl</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        
	<dependency>   
      <groupId>dom4j</groupId>    
      <artifactId>dom4j</artifactId>    
      <version>1.6.1</version>   
    </dependency>   


2.对xml文件的读取
		File file=new File(SourceFilePath);
		SAXReader saxReader = new SAXReader();
		Document document = saxReader.read(file);
		//获取某一个节点
		Node nodeVersion=document.selectSingleNode("//Info/Version");
		//取得该节点的值
		String text=nodeVersion.getText();
		//获取多个节点
		List<Element> list=document.selectNodes("//Info/Files/File");
		//进行循环
		for(int i=0;i<list.size();i++){
			Element element=list.get(i);
			Element nElement=element.element("Name");
		}
3.对xml文件进行输出

将生成的document转换为xml文件格式输入到指定路径可以使用下面的方法进行
OutputFormat format = OutputFormat.createPrettyPrint();
//输出到指定目录
XMLWriter writer = new XMLWriter(new FileOutputStream(destFilePath),format);
writer.write(document);
writer.close();





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值