DOM4j读写XML(实例)

以下代码分为2部分:

第一部分 是上边黑色部分代码(即66行之前),美国服务器,完成的功能是读取XML中的内容,并将值保存到按XML的逻辑关系建成的类中。即将每个XML保存成一个类的实例。这里也体现了如何逐层解析XML文档。

第二部分 是下边的蓝色部分代码(即66行之后),完成的功能是将通过第一步得到的类的实例写入到一个XML文件中。这里体现了如何写XML。

具体代码如下:

1 import java.io.File; 2 import java.io.FileWriter; 3 import java.io.IOException; 4 import java.util.ArrayList; 5 import java.util.List; org.dom4j.Document; 8 import org.dom4j.DocumentException; 9 import org.dom4j.DocumentHelper; 10 import org.dom4j.Element; 11 import org.dom4j.io.OutputFormat; 12 import org.dom4j.io.SAXReader; 13 import org.dom4j.io.XMLWriter; HandleXML { main(String[] args) {SAXReader reader = new SAXReader(); 23reader.setEncoding(“gb2312”); 24 Document document; 25List serviceSystems = new ArrayList<ServiceSystem>(); 26 List list1,list2,list3; 27List serverList = new ArrayList(); 28List ServerTypeList = new ArrayList(); 29List ServiceSystemList = new ArrayList(); 30try { 31document = reader.read(new File(“E:\\serviceSystem.xml”)); 32Element rootElm = document.getRootElement(); 33list1 = (List)rootElm.elements(); 34for(Object oj0:list1){ 35Element element1 = (Element) oj0; 36ServiceSystem s = new ServiceSystem(); 37s.systemName = element1.element(“systemName”).getText(); 38list2 = new ArrayList<ServerType>(); 39list2 = element1.elements(“type”); 40for(Object oj1:list2){ 41Element element2 = (Element)oj1; 42ServerType type = new ServerType(); 43type.typeName = element2.element(“typeName”).getText(); 44list3 = (List)element2.elements(“server”); 45for(Object oj:list3){ 46Element element3 = (Element)oj; 47Server server = new Server(); 48server.serverName = element3.element(“serverName”).getText(); 49server.vmName = element3.element(“vmName”).getText(); 50server.desc = element3.element(“desc”).getText(); 51 serverList.add(server); 52 type.servers.add(server); 53 }s.serverTypes.add(type); 57 } 58 ServiceSystemList.add(s); 59 } 60serviceSystems = ServiceSystemList; 61} catch (DocumentException e) {e.printStackTrace(); 64 } 65 66XMLWriter writer = null;// 声明写XML的对象 67 68OutputFormat format = OutputFormat.createPrettyPrint(); 69format.setEncoding(“gb2312”);// 设置XML文件的编码格式 70 71String filePath = “E:\\s.xml”; 72File file = new File(filePath); 73 74Document _document = DocumentHelper.createDocument(); 75Element _root = _document.addElement(“serviceSystems”); 76 77for(Object oj:serviceSystems){ 78ServiceSystem s = (ServiceSystem)oj; 79Element _serviceSystem = _root.addElement(“serviceSystem”); 80List l1 = s.getServerTypes(); 81Element _systemName = _serviceSystem.addElement(“systemName”); 82_systemName.setText(s.getSystemName()); 8384for(Object oj1:l1){ 85Element _type = _serviceSystem.addElement(“type”); 86ServerType st = (ServerType)oj1; 87List l2 = st.getServers(); 88Element _typeName = _type.addElement(“typeName”); 89_typeName.setText(st.getTypeName()); 9091for(Object oj2:l2){ 92Element _server = _type.addElement(“server”); 93Server ss = (Server)oj2; 94Element _serverName = _server.addElement(“serverName”); 95_serverName.setText(ss.getServerName()); 96Element _vmName = _server.addElement(“vmName”); 97_vmName.setText(ss.getVmName()); 98Element _desc = _server.addElement(“desc”); 99_desc.setText(ss.getDesc());100}101}102}103104try {105writer = new XMLWriter(new FileWriter(file), format);106writer.write(_document);107writer.close();108} catch (IOException e) {109// TODO Auto-generated catch block110e.printStackTrace();111}112113}},虚拟主机,香港服务器租用就是去做你害怕的事,直到你获得成功的经验。

DOM4j读写XML(实例)

相关文章:

你感兴趣的文章:

标签云: