解析规律文件 创建XML
package com.maple.util;
//package com.maple.util; // //import java.util.Date; // //import java.io.BufferedReader; //import java.io.File; //import java.io.FileReader; //import java.io.FileWriter; //import java.text.SimpleDateFormat; // //import javax.xml.parsers.DocumentBuilder; //import javax.xml.parsers.DocumentBuilderFactory; //import javax.xml.transform.Result; //import javax.xml.transform.Source; //import javax.xml.transform.Transformer; //import javax.xml.transform.TransformerFactory; //import javax.xml.transform.dom.DOMSource; //import javax.xml.transform.stream.StreamResult; // //import org.dom4j.DocumentHelper; //import org.dom4j.io.OutputFormat; //import org.dom4j.io.XMLWriter; //import org.w3c.dom.Document; //import org.w3c.dom.Element; // // //public class CreateXml { // // /** // * @param args // */ // public static void main(String[] args) { // // TODO Auto-generated method stub // // TODO Auto-generated method stub // try { // //鍒涘缓涓?釜绌虹櫧鐨剎ml鏂囨。 // // File file =new File("F:mycountry.txt"); // BufferedReader input = new BufferedReader(new FileReader(file)); // String str = null; // String[] array =null; // DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); // DocumentBuilder documentBuilder = builderFactory.newDocumentBuilder(); // Document document = documentBuilder.newDocument(); //鍦ㄥ唴瀛樹腑鏂板垱寤轰竴涓獂ml鏂囨。 // // //涓簒ml鏂囨。娣诲姞鍐呭? // Element rootElement = document.createElement("Countrys"); //鍒涘缓鏍瑰厓绱狅紝鍙?湁document瀵硅薄鎵嶅彲浠ュ垱寤哄厓绱?country // document.appendChild(rootElement); //灏嗘牴鍏冪礌娣诲姞鍒皒ml鏂囨。涓? // while((str=input.readLine())!=null){ // // array = str.split(":"); // // // // // // Element employeeElement = document.createElement("country"); //鍒涘缓employee瀛愬厓绱? // String s2 = new String(array[1].getBytes("ISO-8859-1"),"GBK"); // String s1 = new String(array[0].getBytes("ISO-8859-1"),"GBK"); // employeeElement.setAttribute("name",s2);//涓鸿?鑺傜偣璁剧疆灞炴?鍜屽? // employeeElement.setAttribute("number",s1); // rootElement.appendChild(employeeElement);//娣诲姞鍒版牴鍏冪礌涓? // } // // //Element nameElement = document.createElement("name"); // //nameElement.setTextContent(employee.getName()); //璁剧疆璇ヨ妭鐐圭殑鏂囨湰鍐呭? // //employeeElement.appendChild(nameElement); //// //Element ageElement = document.createElement("age"); // //ageElement.setTextContent(employee.getAge().toString()); //璁剧疆璇ヨ妭鐐圭殑鏂囨湰鍐呭? // //employeeElement.appendChild(ageElement); // // //Element sexElement = document.createElement("sex"); // //sexElement.setTextContent(employee.getSex()); //璁剧疆璇ヨ妭鐐圭殑鏂囨湰鍐呭? // //employeeElement.appendChild(sexElement); // // //SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); // // Element birthdayElement = document.createElement("birthday"); // //birthdayElement.setTextContent(dateFormat.format(employee.getBirthday())); //璁剧疆璇ヨ妭鐐圭殑鏂囨湰鍐呭? // ///employeeElement.appendChild(birthdayElement); // // //淇濆瓨xml鏂囨。鍒扮‖鐩樹笂 // TransformerFactory transformerFactory = TransformerFactory.newInstance(); // Transformer transformer = transformerFactory.newTransformer(); // Source xmlSource = new DOMSource(document); //鏍规嵁鍐呭瓨涓?殑xml鏂囨。鍒涘缓涓?釜璧勬簮 // Result outputTarget = new StreamResult(new File("F:employees.xml")); //浠ユ祦鐨勬柟寮忚緭鍑哄埌鐩?殑鍦帮紝鍗充繚瀛樿矾寰? 杩欓噷鍐欐?浜嗕繚瀛樿矾寰? // transformer.transform(xmlSource,outputTarget);//绗?竴涓?弬鏁帮細瑕佷繚瀛樼殑璧勬簮 绗?簩涓?弬鏁帮細淇濆瓨鐨勭洰鐨勫湴 // // } catch (Exception e) { // e.printStackTrace(); // } // // // } // // // // // // //} //package com.zjm.xml; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; import com.maple.util.Region; public class CreateXML { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub CreateXML xml = new CreateXML(); xml.create(); } public boolean create() { boolean flag = false; Document document = null; //文档 Element books = null; //根节点 Element book = null; //book节点 Element text = null; //text节点 OutputFormat format = null; XMLWriter writer = null; String str = null; String[] array =null; List<Region> regionList = new ArrayList<Region>(); try { document = DocumentHelper.createDocument(); books = document.addElement("Countrys"); books.addComment("注释"); File file =new File("F:mycountry.txt"); try { BufferedReader instreamPut = new BufferedReader(new FileReader(file)); while( (str = instreamPut.readLine())!=null){ array = str.split(":"); // String s2 = new String(array[0].getBytes("ISO-8859-1"),"gb2312"); // String s1 = new String(array[1].getBytes("ISO-8859-1"),"gb2312"); Region region = new Region(array[1],array[0],array[2]); regionList.add(region); Collections.sort(regionList,new Comparator<Region>(){ @Override public int compare(Region arg0,Region arg1) { // TODO Auto-generated method stub return arg0.getPinyin().compareToIgnoreCase( arg1.getPinyin()); }}); } for(Region element:regionList) { book = books.addElement("country"); book.addAttribute("name",element.getName()); book.addAttribute("number",element.getNumber()); book.addAttribute("pinyin",element.getPinyin()); //text = book.addElement("text"); // text.setText("text1"); // book = books.addElement("book"); // book.addAttribute("name","book2"); // book.addAttribute("show","false"); // text = book.addElement("text"); // text.setText("text2"); } format = OutputFormat.createPrettyPrint(); format.setEncoding("GBK"); //format.setEncoding("utf-8"); //用utf-8也不行 // System.out.println(document.asXML()); writer = new XMLWriter(new FileOutputStream("E://mytext.xml"),format);//FileOutputStream writer.write(document); writer.close(); flag = true; return flag; } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } catch(Exception e) { e.printStackTrace(); } return flag; } }
package com.maple.util;
You could write a custom comparator: Collections.sort(list, new Comparator<String>() { public int compare(String a, String b) { return Integer.signum(fixString(a) - fixString(b)); } private int fixString(String in) { Integer.parseInt(in.substring(0, in.indexOf('_'))); } }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |