用dom4j写xml

1、字符串拼接法

  1. String msg = "";  
  2. msg="<?xml version=1.0 encoding=GBK?>";  
  3. msg+="<graph caption='人物年龄列表' xAxisName='人名' yAxisName='年龄' " +"showNames='1' decimalPrecision='0' formatNumberScale='0'  baseFont='宋体' baseFontSize='14' unescapeLinks='0'>";  
  4. msg+="<set name='小明' value='21' color='"+getRandomColor()+"'  link='JavaScript:showName('小明')'  />";  
  5. msg+="<set name='小强' value='25' color='"+getRandomColor()+"'  link='JavaScript:showName('小强')' />";  
  6. msg+="<set name='大力丸' value='47' color='"+getRandomColor()+"' link='JavaScript:showName('大力丸')' />";  
  7. msg+="<set name='主义者' value='85' color='"+getRandomColor()+"'  link='JavaScript:showName('主义者')'/>";  
  8. msg+="<set name='追梦' value='37' color='"+getRandomColor()+"' link='JavaScript:showName('追梦')' />";  
  9. msg+="</graph>";  

2、dom4j


用到的类

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

  1. public String getXMLString(List list){  
  2.         String xmlstr="";  
  3.         Document document = DocumentHelper.createDocument();  
  4.         Element graph = document.addElement("graph");  
  5.         graph.addAttribute("caption""人物年龄列表");  
  6.         graph.addAttribute("xAxisName""人名");  
  7.         graph.addAttribute("yAxisName""年龄");  
  8.         graph.addAttribute("showNames""1");  
  9.         graph.addAttribute("desimalPrecision""0");  
  10.         graph.addAttribute("formatNumberScale""0");  
  11.         graph.addAttribute("baseFont""宋体");  
  12.         graph.addAttribute("baseFontSize""14");  
  13.         graph.addAttribute("unescapeLinks""0");  
  14.         for(int i=0;i<list.size();i++){  
  15.             Element set = graph.addElement("set");  //生成子节点
  16.             Person p = list.get(i);  
  17.             set.addAttribute("name", p.getname());  
  18.             set.addAttribute("value", p.getage());  
  19.             set.addAttribute("color", getRandomColor());  
  20.             set.addAttribute("link""JavaScript:showName('"+p.getname()+"')");  
  21.         }  
  22.         xmlstr = generateXML(document);  
  23.         return xmlstr;  
  24.     }  
  25.        /** 
  26.      * 通过dom生成xml文件 
  27.      */  
  28.     public String generateXML(Document document) {  
  29.   
  30.         String xmlDoc = "";  
  31.         StringWriter sw = new StringWriter();  
  32.         XMLWriter writer;  
  33.         OutputFormat format = OutputFormat.createPrettyPrint();  
  34.         format.setEncoding("GBK");  
  35.   
  36.         writer = new XMLWriter(sw, format);  
  37.         try {  
  38.             writer.write(document);  
  39.             xmlDoc = sw.toString();  
  40.             URLEncoder.encode(xmlDoc, "utf-8");  
  41.        } catch (IOException e) {  
  42.             System.out.println("生成XML字符串发生异常");  
  43.             e.printStackTrace();  
  44.         } finally {  
  45.             try {  
  46.                 writer.close();  
  47.                 sw.close();  
  48.             } catch (IOException e) {  
  49.                 System.out.println("关闭XML读写发生异常");  
  50.                 e.printStackTrace();  
  51.             }  
  52.         }  
  53.         return xmlDoc;  
  54.     }  
  55.   
  56.      /** 
  57.      * 随即获得颜色代码 
  58.      */  
  59.     public String getRandomColor(){  
  60.         //颜色代码位数6  
  61.         int colorLength=6;  
  62.         //颜色代码组数  
  63.         char[] codeSequence={'A','B','C','D','E','F''0','1','2','3','4','5','6','7','8','9'};  
  64.         StringBuffer str=new StringBuffer();  
  65.         Random random=new Random();  
  66.         for(int i=0;i<colorLength;i++){  
  67.             str.append(codeSequence[random.nextInt(16)]);  
  68.         }  
  69.         return str.toString();  
  70.         } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值