對代碼做了一下修改,感覺這樣的xml文件更符合標準規範
代碼中標紅的是修改的內容,以前的已經注掉了。標藍色的是需要注意的節點關係。看一下就會明白的。
(root的子節點是nodes,nodes的字節點是node1,node2)
修改後的xml
而之前的是不帶item標籤的
修改前的xml
public static void importXml(List<Mobile> list, String filePath) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Document doc = db.newDocument();
Element root = doc.createElement("mobile-info");
doc.appendChild(root);
for(int i = 0;i < list.size();i++) {
Element nodes = doc.createElement("item");
root.appendChild(nodes);
Element node1 = doc.createElement("mobile");
node1.appendChild(doc.createTextNode(list.get(i).getMobile()));
nodes.appendChild(node1);
Element node2 = doc.createElement("name");
node2.appendChild(doc.createTextNode(list.get(i).getName()));
nodes.appendChild(node2);
/**
Element node1 = doc.createElement("mobile");
node1.appendChild(doc.createTextNode(list.get(i).getMobile()));
root.appendChild(node1);
Element node2 = doc.createElement("name");
node2.appendChild(doc.createTextNode(list.get(i).getName()));
root.appendChild(node2);
**/
}
// 寫入到指定file的xml文件中去
TransformerFactory tf = TransformerFactory.newInstance();
try {
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(doc);
transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312"); // 這裏設置成gb2312就可以了。
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream(filePath));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}