写了一xml文件解析和制作的代码,方便以后的使用
package com.produce; import java.awt.List; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.sql.ResultSet; import java.sql.SQLException; import java.text.Format; import java.util.ArrayList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import Jbdc.MyDal; import com.xml.Dao.xmlData; public class produceXML { private static Document document; public void init() { try { DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); document = builder.newDocument(); } catch (ParserConfigurationException e) { System.out.println(e.getMessage()); } } public void createXml(ArrayList list) { init(); Element root = document.createElement("configs"); // 创建根节点名字可变 document.appendChild(root); Element number = document.createElement("number"); // 创建根节点名字可变 /* 创建一个完成的节点,start */ for (int i = 0; i < list.size(); i++) { xmlData data = (xmlData) list.get(i); Element item = document.createElement("item"); Attr name = document.createAttribute("name"); item.setAttribute("name","Name"); // 增加属性的另一种方法 item.appendChild(document.createTextNode(data.getDataName())); number.appendChild(item); Element item1 = document.createElement("item"); Attr name1 = document.createAttribute("name"); item1.setAttribute("name","Number"); // 增加属性的另一种方法 item1.appendChild(document.createTextNode(data.getID())); number.appendChild(item1); root.appendChild(number); } // 将DOM对象document写入到xml文件中 TransformerFactory tf = TransformerFactory.newInstance(); try { Transformer transformer = tf.newTransformer(); DOMSource source = new DOMSource(document); transformer.setOutputProperty(OutputKeys.ENCODING,"gb2312"); transformer.setOutputProperty(OutputKeys.INDENT,"yes"); PrintWriter pw = new PrintWriter(new FileOutputStream("xml数据记录")); StreamResult result = new StreamResult(pw); transformer.transform(source,result); // 关键转换 System.out.println("生成XML文件成功!"); } catch (TransformerConfigurationException e) { System.out.println(e.getMessage()); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } catch (FileNotFoundException e) { System.out.println(e.getMessage()); } catch (TransformerException e) { System.out.println(e.getMessage()); } } /* * 解析xml文件 * * @return 返回一个链表 如果链表为空创建xml文件 */ public ArrayList<xmlData> parserXml() { try { String name = null; String number = null; ArrayList<xmlData> list = new ArrayList<xmlData>(); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.parse("xml数据记录"); NodeList employees = document.getChildNodes(); for (int i = 0; i < employees.getLength(); i++) { Node employee = employees.item(i); NodeList employeeInfo = employee.getChildNodes(); for (int j = 0; j < employeeInfo.getLength(); j++) { Node node = employeeInfo.item(j); NodeList employeeMeta = node.getChildNodes(); for (int k = 0; k < employeeMeta.getLength(); k += 1) { xmlData xmldata = new xmlData(); if (k % 2 == 1) { if (name == null) { name = employeeMeta.item(k).getTextContent(); } else { number = employeeMeta.item(k).getTextContent(); xmldata.setDataName(name); xmldata.setID(number); list.add(xmldata); System.out.println("name:" + name + ";" + "number:" + number); name = null; } } } } } System.out.println("解析完毕"); return list; } catch (FileNotFoundException e) { produceXML j2x = new produceXML(); try { j2x.buildxml(); } catch (SQLException e1) { e1.printStackTrace(); } return null; } catch (ParserConfigurationException e) { System.out.println(e.getMessage()); } catch (SAXException e) { System.out.println(e.getMessage()); } catch (IOException e) { System.out.println(e.getMessage()); } return null; } /* * xml中查询数据 * * @return <0 说明存在或者表中没有该项数据 ; >0返回上次读取数字ID */ public String findnumber(String dataname) { String number = "-1"; produceXML j2x = new produceXML(); ArrayList<xmlData> list = j2x.parserXml(); if (list != null) { for (int i = 0; i < list.size(); i++) { xmlData item = list.get(i); if (dataname.equals(item.getDataName())) { number = item.getID(); break; } } } return number; } /* * 创建初始化xml文件 */ public void buildxml() throws SQLException { produceXML j2x = new produceXML(); MyDal dbsql = new MyDal(); xmlData data=null; ArrayList<xmlData> list2 = new ArrayList<xmlData>(); String[] list = { "leadership","tyst","jgjj","jgzn","gzgz","flfg", "tsff","xzsyxsf","zfxjj","xzsp","busiess","zfwnrbz", "zxfw","bjxxfb","btffxx","dqgk","lxfs","zxjbszn" }; for (int i = 0; i < list.length; i++) { data=new xmlData(); data.setDataName(list[i]); String sql = j2x.sql(i); System.out.println(list[i]+":"+sql); ResultSet rs = dbsql.Query(sql); boolean b = rs.last(); if (b) { data.setID(rs.getString(1)); }else{ data.setID("0"); } list2.add(data); } createXml(list2); } public static void main(String[] args) { try { produceXML j2x = new produceXML(); ArrayList<xmlData> list = new ArrayList<xmlData>(); list = j2x.parserXml(); j2x.buildxml(); if (list == null) { System.out.println("kong"); } } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } } }
dao
package com.xml.Dao; public class xmlData { public String ID; public String dataName; public String getID() { return ID; } public void setID(String iD) { ID = iD; } public String getDataName() { return dataName; } public void setDataName(String dataName) { this.dataName = dataName; } } (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|