如何在xml中对xml元素进行排序 例如 输入xml是这样的 人 一个 乙 雇员 一个 乙 人 C d 雇员 C d
现在我想将xml排序为喜欢 产量 人 一个 乙 人 C d 雇员 一个 乙 雇员 C d
那就是以Person开头的所有节点应先到然后是Employye节点......
我现在尝试这样,
BufferedReader docInput = new BufferedReader(new InputStreamReader(inputStream));
BufferedWriter docOutput = new BufferedWriter(new OutputStreamWriter(outputStream));
StringBuffer insb = new StringBuffer();
String line = "", segment="";
String beginSegment = "";
Vector a=new Vector();
Vector b=new Vector();
Properties prop = System.getProperties();
String lineSeparator = prop.getProperty("line.separator");
int start=0,pos=0;
try
{
while ((line = docInput.readLine()) != null)
{
line.replace(lineSeparator,"");
insb.append(line);
}
pos=insb.indexOf(":Recipient");
pos=pos-15;
pos=insb.indexOf("<",pos);
beginSegment=insb.substring(0,pos);
System.out.println(" Begin "+beginSegment);
insb=insb.replace(0,pos,"");
while(insb.indexOf("Recipient>")>0)
{
pos=insb.indexOf("Recipient>");
segment=insb.substring(0,pos+10);
a.add(segment);
segment="";
insb=insb.replace(0,pos+10,"");
}
for(int y=0;y<b.size();y++)
if(b.get(y).toString().contains("Employee>"))
{
a.add(b.get(y).toString());
b.remove(y);
}
for(int y=0;y<a.size();y++)
b.add(a.get(y).toString());
b.add(0,beginSegment);
b.add(insb.toString());
for(int y=0;y<b.size();y++)
docOutput.write(b.get(y).toString());
docOutput.close();
docInput.close();
}
答案 0 :(得分:0)
为什么不引用compareTo方法?
public int compareTo(String anotherString)
按字典顺序比较两个字符串。如果此String对象按字典顺序跟随参数字符串,则结果为正整数。如果字符串相等,结果为零; compareTo恰好在equals(Object)方法返回true时返回0。
无论如何,您应该使用XML Parser。这样,如果你扩展对象关系映射功能,我的意思是如果你得到一个Person或Employee的实例,你也可以在这些类中实现Comparable来按你喜欢的人排序