DOM4j读写XML(实例)
2013-04-15 15:23
253 查看
以下代码分为2部分:
第一部分 是上边黑色部分代码(即66行之前),完成的功能是读取XML中的内容,并将值保存到按XML的逻辑关系建成的类中。即将每个XML保存成一个类的实例。这里也体现了如何逐层解析XML文档。
第二部分 是下边的蓝色部分代码(即66行之后),完成的功能是将通过第一步得到的类的实例写入到一个XML文件中。这里体现了如何写XML。
具体代码如下:
第一部分 是上边黑色部分代码(即66行之前),完成的功能是读取XML中的内容,并将值保存到按XML的逻辑关系建成的类中。即将每个XML保存成一个类的实例。这里也体现了如何逐层解析XML文档。
第二部分 是下边的蓝色部分代码(即66行之后),完成的功能是将通过第一步得到的类的实例写入到一个XML文件中。这里体现了如何写XML。
具体代码如下:
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class HandleXML { public static void main(String[] args) { // TODO Auto-generated method stub SAXReader reader = new SAXReader(); reader.setEncoding("gb2312"); Document document; List serviceSystems = new ArrayList<ServiceSystem>(); List list1,list2,list3; List serverList = new ArrayList(); List ServerTypeList = new ArrayList(); List ServiceSystemList = new ArrayList(); try { document = reader.read(new File("E:\\serviceSystem.xml")); Element rootElm = document.getRootElement(); list1 = (List)rootElm.elements(); for(Object oj0:list1){ Element element1 = (Element) oj0; ServiceSystem s = new ServiceSystem(); s.systemName = element1.element("systemName").getText(); list2 = new ArrayList<ServerType>(); list2 = element1.elements("type"); for(Object oj1:list2){ Element element2 = (Element)oj1; ServerType type = new ServerType(); type.typeName = element2.element("typeName").getText(); list3 = (List)element2.elements("server"); for(Object oj:list3){ Element element3 = (Element)oj; Server server = new Server(); server.serverName = element3.element("serverName").getText(); server.vmName = element3.element("vmName").getText(); server.desc = element3.element("desc").getText(); serverList.add(server); type.servers.add(server); } s.serverTypes.add(type); } ServiceSystemList.add(s); } serviceSystems = ServiceSystemList; } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } XMLWriter writer = null;// 声明写XML的对象 67 68 OutputFormat format = OutputFormat.createPrettyPrint(); 69 format.setEncoding("gb2312");// 设置XML文件的编码格式 70 71 String filePath = "E:\\s.xml"; 72 File file = new File(filePath); 73 74 Document _document = DocumentHelper.createDocument(); 75 Element _root = _document.addElement("serviceSystems"); 76 77 for(Object oj:serviceSystems){ 78 ServiceSystem s = (ServiceSystem)oj; 79 Element _serviceSystem = _root.addElement("serviceSystem"); 80 List l1 = s.getServerTypes(); 81 Element _systemName = _serviceSystem.addElement("systemName"); 82 _systemName.setText(s.getSystemName()); 83 84 for(Object oj1:l1){ 85 Element _type = _serviceSystem.addElement("type"); 86 ServerType st = (ServerType)oj1; 87 List l2 = st.getServers(); 88 Element _typeName = _type.addElement("typeName"); 89 _typeName.setText(st.getTypeName()); 90 91 for(Object oj2:l2){ 92 Element _server = _type.addElement("server"); 93 Server ss = (Server)oj2; 94 Element _serverName = _server.addElement("serverName"); 95 _serverName.setText(ss.getServerName()); 96 Element _vmName = _server.addElement("vmName"); 97 _vmName.setText(ss.getVmName()); 98 Element _desc = _server.addElement("desc"); 99 _desc.setText(ss.getDesc()); 100 } 101 } 102 } 103 104 try { 105 writer = new XMLWriter(new FileWriter(file), format); 106 writer.write(_document); 107 writer.close(); 108 } catch (IOException e) { 109 // TODO Auto-generated catch block 110 e.printStackTrace(); 111 } 112 113 } }
相关文章推荐
- 使用dom4j读写xml实例
- dom4j读写xml文档实例
- Java XML解析工具 dom4j介绍及使用实例
- Dom4j下载及使用Dom4j读写XML简介
- 使用Dom4j读写XML简介
- Dom4j下载及使用Dom4j读写XML简介
- dom4j解析xml字符串实例
- xml文件读写实例
- dom4j 读写xml的一些知识。
- dom4j 读写xml
- c# xml读写 操作 实例
- dom4j解析xml字符串实例
- dom4j读写xml文件
- 应用dom4j读写xml范例
- java 读写xml dom4j
- DOM、JDOM、DOM4J解析XML实例
- Dom4j下载及使用Dom4j读写XML简介
- java dom4j解析xml实例(2)
- dom4j解析xml字符串实例
- dom4j解析xml字符串实例-01