案例
/**
* 创建和写入xml
* @param xmlrootname
* @param waitConverList
*/
private void createAndWriterXML(String xmlrootname,Map<String ,BaseModel> waitConverList){
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null ;
try {
builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
if( builder == null ) return ;
Document document = builder.newDocument();
Element root = document.createElement(xmlrootname); //创建根节点
document.appendChild(root); Map<String,TableXml> xmlTableMap = InitTableInfo.getXmlTableMap();
for (String tablename: waitConverList.keySet()) {
TableXml xml = xmlTableMap.get(tablename);
if(xml == null )continue;
BaseModel baseModel = waitConverList.get(tablename);
if( baseModel == null )continue;
HashMap<String, Object> map = ConverUtils.converBeanToMap(baseModel); Element item = document.createElement(xml.getValue());
root.appendChild(item);
if( map != null && map.size()>0 ){
Map<String,String> columnMap = xml.getColumnMap();
for (String key : columnMap.keySet()) {
if(StringUtils.isBlank(key))continue;
Element childItem = document.createElement(columnMap.get(key));
Object ob = map.get(key.toUpperCase());
childItem.appendChild(document.createTextNode(ob==null?"":ob.toString()));
item.appendChild(childItem);
}
}
} //将DOM对象document写入到xml文件中
TransformerFactory tf = TransformerFactory.newInstance();
try {
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.setOutputProperty(OutputKeys.VERSION, "1.0");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream("C:\\Users\\huage\\Desktop\\o\\"+xmlrootname+".xml"));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result); //关键转换
} catch (Exception e) {
e.printStackTrace();
} }