list<map>转xml

listmap转xml

// 注意导入的包是这个
import org.jdom2.Element;
import org.jdom2.Document;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

/**
	* 对List 中Map 转换成xml字符串
	 * 
	 * @param list
	 *            <Map>
	 * @return String
	 * @throws IOException
	 */
public static String listToXmlString(List<Map> list) throws IOException {
	Document result = new Document();
	// 根标签,这个根标签的名字自己取,根据需求命名
	Element root = new Element("DATASETS");
	root.setText("");
	if (list != null) {
		for (Map map : list) {
			Set keys = map.keySet();
			Iterator iterator = keys.iterator();
			// 字标签(包裹着每一项的标签)根据需求(实际情况)命名
			Element data = new Element("DATASET");
			while (iterator.hasNext()) {
				String key = String.valueOf(iterator.next());
				String value = String.valueOf(map.get(key));
				Element node = new Element(key);
				node.setText(value);
				data.addContent(node);
			}
			root.addContent(data);
		}
	}
	ArrayList arrayList = new ArrayList();
	arrayList.add(root);
	result.setContent(arrayList);
	String resultXML = docToXml(result);
	return resultXML;
}


/**
	 * 对DOC 文件输出xml字符串
	 * 
	 * @param doc
	 * @return String
	 * @throws IOException
	 */
	public static String docToXml(org.jdom2.Document doc) throws IOException {
		Format format = Format.getPrettyFormat();
		format.setEncoding("UTF-8");// 设置xml文件的字符为UTF-8,解决中文问题
		XMLOutputter xmlout = new XMLOutputter(format);
		ByteArrayOutputStream bo = new ByteArrayOutputStream();

		xmlout.output(doc, bo);
		String xmlStr = bo.toString();
		return xmlStr;
	}

原list数据

[
  {
    education=undergraduate, 
    occupation=programmer, 
    name=范闲, 
    weight=150,   
    age=23, 
    height=173, 
    hobby=basketball
  }, 
  {
    education=undergraduate, 
    occupation=programmer, 
    name=王一, 
    weight=120, 
    age=22, 
    height=168, 
    hobby=game
  }, 
  {
    education=undergraduate, 
    occupation=programmer, 
    name=魏胖, 
    weight=125, 
    age=22, 
    height=170, 
    hobby=novel
  }
]

转化成的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<DATASETS>
    <DATASET>
        <education>undergraduate</education>
        <occupation>programmer</occupation>
        <name>范闲</name>
        <weight>150</weight>
        <age>23</age>
        <height>173</height>
        <hobby>basketball</hobby>
    </DATASET>
    <DATASET>
        <education>undergraduate</education>
        <occupation>programmer</occupation>
        <name>王一</name>
        <weight>120</weight>
        <age>22</age>
        <height>168</height>
        <hobby>game</hobby>
    </DATASET>
    <DATASET>
        <education>undergraduate</education>
        <occupation>programmer</occupation>
        <name>魏胖</name>
        <weight>125</weight>
        <age>22</age>
        <height>170</height>
        <hobby>novel</hobby>
    </DATASET>
</DATASETS>
posted @ 2022-11-11 17:37  合起来的彳亍  阅读(304)  评论(0编辑  收藏  举报