java (功能篇) dom4j 生成xml文件分析

熊孩纸 阅读:295 2021-03-31 22:50:21 评论:0

第一步:不说其他,现在web项目或工程中,引入dom4j的jar 文件,这是基础。

第二步:代码编写---相关注释已经添加代码中。

package com.flex; 
 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.OutputStreamWriter; 
import java.io.PrintWriter; 
import java.io.Writer; 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
import java.util.UUID; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import org.dom4j.Document; 
import org.dom4j.DocumentHelper; 
import org.dom4j.Element; 
import org.dom4j.io.XMLWriter; 
 
 
 
import com.flex.model.Arc; 
import com.flex.model.Node; 
 
import net.sf.json.JSONArray; 
import net.sf.json.JSONObject; 
 
public class Demo extends HttpServlet { 
 
	/** 
	 *  
	 */ 
	private static final long serialVersionUID = 1L; 
 
	@Override 
	public void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException { 
		// TODO Auto-generated method stub 
		response.setCharacterEncoding("utf-8");   
		response.setContentType( "text/json;charset=utf-8");  
		PrintWriter writer=response.getWriter(); 
		 
//		 
//		List<Map<String,Object>> nodes=createNodes(); 
//		List<Map<String,Object>> drcs=createArcs(nodes); 
//		JSONArray array=listToJson(drcs); 
//		List<Node> server=new ArrayList<Node>(); 
//		List<Node> switchs=new ArrayList<Node>(); 
//		List<Node> storage=new ArrayList<Node>(); 
//		for(int i=0;i<20;i++){ 
//			Node node=new Node(); 
//			node.setIcon("assets/topos/server.png"); 
//			node.setId(""+i); 
//			node.setText("服务器"); 
//			node.setTooltip("服务器"); 
//			node.setType(""+1); 
//			server.add(node);			 
//		} 
//		for(int i=0;i<3;i++){ 
//			Node node=new Node(); 
//			node.setIcon("assets/topos/switch.png"); 
//			node.setId(""+i+20); 
//			node.setText("交换机"); 
//			node.setTooltip("交换机"); 
//			node.setType(""+2); 
//			switchs.add(node);	 
//		} 
//		for(int i=0;i<1;i++){ 
//			Node node=new Node(); 
//			node.setIcon("assets/topos/storage.png"); 
//			node.setId(""+i+30); 
//			node.setText("存储设备"); 
//			node.setTooltip("存储设备"); 
//			node.setType(""+3); 
//			storage.add(node);	 
//		} 
//		 
//	 
//		StringBuilder json=new StringBuilder(); 
//		json.append("{\"servers\":"); 
//		json.append(JSONArray.fromObject(server)); 
//		json.append(",\"switchs\":"); 
//		json.append(JSONArray.fromObject(switchs)); 
//		json.append(",\"storage\":"); 
//		json.append(JSONArray.fromObject(storage)); 
//		json.append("}"); 
		createXml("Hello.xml"); 
		writer.write("success"); 
		writer.flush(); 
		writer.close(); 
		 
		 
	} 
	 
	//生成xml文件 
	 public void createXml(String fileName){ 
		 //当前项目路径 
		 String path="E:/apache-tomcat-6.0.20/webapps/Flex/xml/"; 
		 //判断文件是否存在? 
		 File file=new File(path+fileName); 
		 if(file.exists()){ 
			 //文件内容清空 
			 try{ 
			 FileWriter write =  new FileWriter(file); 
			 write.write(""); 
			 write.flush(); 
			 write.close(); 
			 }catch(Exception e){ 
				 e.printStackTrace(); 
			 } 
		 }else{ 
			 //创建文件 
			 try{ 
				 file.createNewFile(); 
			 }catch(IOException e){ 
				 e.printStackTrace(); 
			 }		  
			  
		 } 
		  
		 //向指定文件生成xml 文件信息 
		 Document document = org.dom4j.DocumentHelper.createDocument();//创建文档    
   
	     Element graph=document.addElement("graph");   //添加根节点 
	     for(int i=0;i<10;i++){ 
	    	 Element node=graph.addElement("node");  //添加根节点---子节点 
	    	 //子节点属性添加 
		     node.setAttributeValue("id", ""+i); 
		     node.setAttributeValue("text", "服务器"+i); 
		     node.setAttributeValue("tooltip", "服务器"+i); 
		     node.setAttributeValue("type", "服务器"); 
		     node.setAttributeValue("icon", "assets/topos/server.png");    	  
	     } 
	     for(int i=0;i<3;i++){ 
	    	 Element node=graph.addElement("node");  //添加根节点---子节点 
	    	 //子节点属性添加 
	    	 int result=11+i; 
		     node.setAttributeValue("id", ""+result); 
		     node.setAttributeValue("text", "交换机"+result); 
		     node.setAttributeValue("tooltip", "交换机"+result); 
		     node.setAttributeValue("type", "交换机"); 
		     node.setAttributeValue("icon", "assets/topos/switch.png");    	  
	     } 
	     for(int i=0;i<1;i++){ 
	    	 Element node=graph.addElement("node");  //添加根节点---子节点 
	    	 //子节点属性添加 
		     node.setAttributeValue("id", ""+i+13); 
		     node.setAttributeValue("text", "存储设备"+i+13); 
		     node.setAttributeValue("tooltip", "存储设备"+i+13); 
		     node.setAttributeValue("type", "存储设备"); 
		     node.setAttributeValue("icon", "assets/topos/storage.png");   
	     } 
	     Element arc=graph.addElement("arc");  //添加根节点---子节点 
	     arc.setAttributeValue("id", "15"); 
	     arc.setAttributeValue("type", "connectedTo"); 
	     arc.setAttributeValue("tooltip", "");	     
	     arc.setAttributeValue("source", "11"); 
	     arc.setAttributeValue("destination", "1");	 
	      
	     Element arc1=graph.addElement("arc");  //添加根节点---子节点 
	     arc1.setAttributeValue("id", "15"); 
	     arc1.setAttributeValue("type", "connectedTo"); 
	     arc1.setAttributeValue("tooltip", "");	     
	     arc1.setAttributeValue("source", "11"); 
	     arc1.setAttributeValue("destination", "2");	 
	      
	     Element arc2=graph.addElement("arc");  //添加根节点---子节点 
	     arc2.setAttributeValue("id", "15"); 
	     arc2.setAttributeValue("type", "connectedTo"); 
	     arc2.setAttributeValue("tooltip", "");	     
	     arc2.setAttributeValue("source", "11"); 
	     arc2.setAttributeValue("destination", "3");	 
	     
	     try {     
	    	   
	            Writer fileWriter=new FileWriter(path+fileName);     
	            XMLWriter xmlWriter=new XMLWriter(fileWriter);     
	            xmlWriter.write(document);   //写入文件中  
	            xmlWriter.close();    
	            } catch (IOException e) {     
	                System.out.println(e.getMessage());     
	            }     
 
	      
	      
	     
	     
	      
		  
	 } 
 
 
 
} 


现在可以进行相关测试哒。拜拜了

 

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
KIKK导航

KIKK导航

排行榜
关注我们

一个IT知识分享的公众号