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;
public class Region {
private String name;
private String number;
private String pinyin;
/**
* @return the name
*/
public Region(String name ,String number,String pinyin)
{
this.name = name;
this.number = number;
this.pinyin = pinyin;
}
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the number
*/
public String getNumber() {
return number;
}
/**
* @param number the number to set
*/
public void setNumber(String number) {
this.number = number;
}
/**
* @return the pinyin
*/
public String getPinyin() {
return pinyin;
}
/**
* @param pinyin the pinyin to set
*/
public void setPinyin(String pinyin) {
this.pinyin = pinyin;
}
}
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) { return Integer.parseInt(in.substring(0, in.indexOf('_'))); } });