`
iluoxuan
  • 浏览: 571181 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于XmlUtil操作xml生成的类的设计------xml生成方法实现

 
阅读更多

前面,就实现了单例没有把具体的方法写出来,因为操作xml生成,是key-vlaue模式;从数据库到封装xml文件XmlUtil工具类是必不可少的:

 

package com.xmlutil;

import java.util.Map;

/**
 * xml操作类
 * @author lijunqing 定义xml的格式为<ROOT></ROOT>
 */
public class XmlUtil {

    private static XmlUtil xmlUtil=null;

    private XmlUtil() {

    }

    public synchronized static XmlUtil getInstance() {
        if(xmlUtil == null) {
            xmlUtil=new XmlUtil();
        }
        return xmlUtil;
    }

    public String getXmlHeader() {
        String xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?><ROOT></ROOT>";
        return xml;
    }

    public String insertXmlSec(String xml, Map<String, String> mapInfo) {
        String key=null;
        String value=null;
        String result=xml;
        for(Map.Entry<String, String> entry: mapInfo.entrySet()) {
            key=entry.getKey();
            value=entry.getValue();
            result=insertXmlSec(result, key, value);
        }
        return result;
    }

    /**
     * 单个key value 插入 在xml的root根元素后插入xml元素
     * @param xml
     * @param key
     * @param value
     * @return
     */
    public String insertXmlSec(String xml, String key, String value) {
        String[] xmlsec=xml.split("><");
        String result=xmlsec[0] + "><" + xmlsec[1] + ">";
        StringBuffer xmlKey=new StringBuffer();
        xmlKey.append("<").append(key.toUpperCase()).append(">");
        xmlKey.append(value).append("</").append(key.toUpperCase()).append(">");
        result=result + xmlKey.toString();
        for(int i=2; i <= xmlsec.length - 1; i++) {
            if(i == xmlsec.length - 1) {
                result=result + "<" + xmlsec[i];
            } else {
                result=result + "<" + xmlsec[i] + ">";
            }
        }
        return result;
    }
}

 测试案例:

 

package com.test;

import java.util.HashMap;
import java.util.Map;

import org.junit.Test;

import com.xmlutil.XmlUtil;

public class TestXmlSec {

    @Test
    public void TestInsertXmlSec() {
        XmlUtil xmlUtil=XmlUtil.getInstance();
        String xml=xmlUtil.getXmlHeader();
        System.out.println(xml);
        String result=xmlUtil.insertXmlSec(xml, "USERNAME", "君子邪");
        result=xmlUtil.insertXmlSec(result, "USERNAME", "君子邪");
        result=xmlUtil.insertXmlSec(result, "USERNAME", "君子邪");
        System.out.println(result);
    }

    @Test
    public void TestinsertXmlSecByMap() {
        XmlUtil xmlUtil=XmlUtil.getInstance();
        String xml=xmlUtil.getXmlHeader();
        System.out.println(xml);
        Map<String, String> mapInfo=new HashMap<String, String>();
        mapInfo.put("TIME", "89:00");
        mapInfo.put("ID", "1");
        xml=xmlUtil.insertXmlSec(xml, mapInfo);
        System.out.println(xml);
    }
}

 

 结果:

<?xml version="1.0" encoding="UTF-8"?><ROOT></ROOT>
<?xml version="1.0" encoding="UTF-8"?><ROOT><USERNAME>君子邪</USERNAME><USERNAME>君子邪</USERNAME><USERNAME>君子邪</USERNAME></ROOT>
<?xml version="1.0" encoding="UTF-8"?><ROOT></ROOT>
<?xml version="1.0" encoding="UTF-8"?><ROOT><ID>1</ID><TIME>89:00</TIME></ROOT>
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics