利用dom4j进行简单的解析、创建XML文件

一、解析XML文件(要先下载配置好相应的jar包)

1、要解析的XML文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- 文档声明 -->
<goodslist>
   <good id="1001">
      <price>12</price>
      <name>电视机</name>
      <place>北京</place>
   </good>
   <good id="1002">
      <price>13</price>
      <name>洗衣机</name>
      <place>上海</place>
   </good>
   <good id="1003">
      <price>14</price>
      <name>冰箱</name>
      <place>山东</place>
   </good>
   <Font style="宋体"></Font>
</goodslist>

2、利用dom4j来进行解析 

package testxml;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ParseXML {
	public static void main(String[] args) throws DocumentException {
		SAXReader reader = new SAXReader();
        Document document = reader.read("src/testxml/Txml.xml");
        Element root = document.getRootElement();//获得根元素
       // System.out.println(root.getName());//打印根元素的名称
       Iterator<Element> it = root.elementIterator();//获得子标签,存储在迭代器中
       while(it.hasNext()) {//遍历迭代器输出字标签的相关信息
    	   Element ele = it.next();
    	   System.out.println(ele.getName());
    	   Iterator<Attribute> att = ele.attributeIterator();//获得当前标签的属性,属性包含属性名以及属性值,存到迭代器中;
    	   while(att.hasNext()) {
    		   Attribute a = att.next();
    		   System.out.println(a.getName()+":"+a.getValue());
    	   }
    	   Iterator <Element> it1 = ele.elementIterator();
    	   while(it1.hasNext()) {
    		   Element ele1 = it1.next();
    		   System.out.println(ele1.getName());
    		   System.out.println(ele1.getText());
    	   }
       }
	}
}

3、解析结果:

good
id:1001
price
12
name
电视机
place
北京
good
id:1002
price
13
name
洗衣机
place
上海
good
id:1003
price
14
name
冰箱
place
山东
Font
style:宋体

二、创建XML文件:

package testxml;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
public class CreateXml {
   public static void main(String[] args) throws IOException {
	   Document document = DocumentHelper.createDocument();
       Element root = document.addElement("root");//创建根元素
       Element author1 = root.addElement("author")//创建子标签 
           .addAttribute("name", "James")
           .addAttribute("location", "UK")
           .addText("James Strachan");
       Element author2 = root.addElement("author")
           .addAttribute("name", "Bob")
           .addAttribute("location", "US")
           .addText("Bob McWhirter");
       FileWriter fw = new FileWriter("foo.xml");
       XMLWriter xw = new XMLWriter(fw);
       xw.write(document);
       xw.close();
  }
}

在同级目录下生成的XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<root>
<author name="James" location="UK">James Strachan</author>
<author name="Bob" location="US">Bob McWhirter</author>
</root>

猜你喜欢

转载自blog.csdn.net/z_xindong/article/details/88380924