生成帶中文的xml文件(dom解析)

對代碼做了一下修改,感覺這樣的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();
  }
  
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章