public class XmlCreatorHelper {
private static Logger LOG = LoggerFactory.getLogger(XmlCreatorHelper.class);
private static List<Map<String, String>> list = null;
private static Map<String, String> map = null;
// 生成xml文档的位置
private final static String filepath = "D:\\temp.xml";
static {
// 初始化应有的数据
list = new ArrayList<Map<String, String>>();
map = new HashMap<String, String>();
map.put("id", "01");
map.put("name", "jack");
map.put("age", "18");
list.add(map);
map = new HashMap<String, String>();
map.put("id", "02");
map.put("name", "stephen");
map.put("age", "19");
list.add(map);
}
public static String createXMLString() {
// 创建document文档对象
Document document = DocumentHelper.createDocument();
// 创建并设置根节点
Element root = document.addElement("Results");
// 在根节点下面创建子节点
Element rootSon = root.addElement("Persons");
// 为子节点设置元素内容
for (Map<String, String> map : list) {
Element rootSonSon = rootSon.addElement("Persion");
rootSonSon.addAttribute("id", map.get("id"));
rootSonSon.addElement("name").addText(map.get("name"));
rootSonSon.addElement("age").addText(map.get("age"));
}
return document.asXML();
}
public static void createXMLFile() {
// 创建document文档对象
Document doc = DocumentHelper.createDocument();
// 创建并设置根节点
Element root = doc.addElement("Results");
// 在根节点下面创建子节点
Element rootSon = root.addElement("Persons");
// 为子节点设置元素内容
for (Map<String, String> map : list) {
Element rootSonSon = rootSon.addElement("Person");
rootSonSon.addAttribute("id", map.get("id"));
rootSonSon.addElement("name").addText(map.get("name"));
rootSonSon.addElement("age").addText(map.get("age"));
}
try {
// 将文档对象的内容写入文件
// 首先设置编码格式
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileOutputStream(new File(filepath)));
writer.write(doc);
writer.flush();
writer.close();
} catch (UnsupportedEncodingException e) {
LOG.error("UnsupportedEncodingException", e);
} catch (FileNotFoundException e) {
LOG.error("FileNotFoundException", e);
} catch (IOException e) {
LOG.error("IOException", e);
}
}