在java中对xml文件中的元素进行排序
我想在java中根据用户选择的算法类型对xml文件中的元素进行排序。我合并了包含10个xml文件的xml文件。所以这就像用户首先选择算法的类型,然后根据用户的需要对元素进行排序。我该怎么做呢?请帮帮我 下面是我合并xml文件的方法在java中对xml文件中的元素进行排序,java,xml,sorting,indexing,bubble-sort,Java,Xml,Sorting,Indexing,Bubble Sort,我想在java中根据用户选择的算法类型对xml文件中的元素进行排序。我合并了包含10个xml文件的xml文件。所以这就像用户首先选择算法的类型,然后根据用户的需要对元素进行排序。我该怎么做呢?请帮帮我 下面是我合并xml文件的方法 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.File
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class Merge2 {
public static void main(String[] args) {
String sourceFile1Path = "C:\\Users\\project\\Numbers1.xml";
String sourceFile2Path = "C:\\Users\\project\\Numbers2.xml";
String sourceFile3Path = "C:\\Users\\project\\Numbers3.xml";
String sourceFile4Path = "C:\\Users\\project\\Numbers4.xml";
String sourceFile5Path = "C:\\Users\\project\\Numbers5.xml";
String sourceFile6Path = "C:\\Users\\project\\Numbers6.xml";
String sourceFile7Path = "C:\\Users\\project\\Numbers7.xml";
String sourceFile8Path = "C:\\Users\\project\\Numbers8.xml";
String sourceFile9Path = "C:\\Users\\project\\Numbers9.xml";
String sourceFile10Path = "C:\\Users\\project\\Numbers10.xml";
String mergedFilePath = "C:\\Users\\project\\mergedXML.xml";
File[] files = new File[10];
files[0] = new File(sourceFile1Path);
files[1] = new File(sourceFile2Path);
files[2] = new File(sourceFile3Path);
files[3] = new File(sourceFile4Path);
files[4] = new File(sourceFile5Path);
files[5] = new File(sourceFile6Path);
files[6] = new File(sourceFile7Path);
files[7] = new File(sourceFile8Path);
files[8] = new File(sourceFile9Path);
files[9] = new File(sourceFile10Path);
File mergedFile = new File(mergedFilePath);
mergeFiles(files, mergedFile);
}
public static void mergeFiles(File[] files, File mergedFile) {
FileWriter fstream = null;
BufferedWriter out = null;
try {
fstream = new FileWriter(mergedFile, true);
out = new BufferedWriter(fstream);
} catch (IOException e1) {
e1.printStackTrace();
}
for (File f : files) {
System.out.println("merging: " + f.getName());
FileInputStream fis;
try {
fis = new FileInputStream(f);
BufferedReader in = new BufferedReader(new InputStreamReader(fis));
String aLine;
while ((aLine = in.readLine()) != null) {
out.write(aLine);
out.newLine();
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我的合并xml文件如下所示
<numberList>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<number index="1">770820</number>
<number index="2">640903</number>
<number index="3">997132</number>
<number index="4">193504</number>
770820
640903
997132
193504
我想表现得像
<numberList>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<number index="1">193504</number>
<number index="2">640903</number>
<number index="3">770820</number>
<number index="4">997132</number>
193504
640903
770820
997132
我不明白排序的含义,但请您知道,您的代码可能要简洁得多:
String pathTemplate = "C:\\Users\\project\\Numbers%d.xml";
String mergedFilePath = "C:\\Users\\project\\mergedXML.xml";
int nFiles = 10;
File[] files = new File[nFiles];
for (int i=0 ; i<nFiles ; i++)
files[i] = new File(String.format(pathTemplate,i + 1));
//...
String pathTemplate=“C:\\Users\\project\\Numbers%d.xml”;
字符串mergedFilePath=“C:\\Users\\project\\mergedXML.xml”;
int nFiles=10;
File[]files=新文件[nFiles];
对于(inti=0;iYou应该使用数组(或集合)和循环,而不是复制/粘贴代码行(我不知道合并文件后你想做什么。但是我不想改变索引部分,你能告诉我怎么做吗?谢谢你的回复,我有一个xml文件,它是从上面开始的,我想做的是用户选择一种算法类型,然后当用户选择算法类型时,xml文件中的元素将根据选择的类型进行排序L算法,比如bubble或其他,显示已排序的元素,但我无法修复这一部分:sIt并不是那么难…只需实现您想向用户建议的所有排序算法,在ArrayList中检索合并文件的所有值,对其排序并写入输出文件。您无法执行哪部分。检索所有值ArrayList中合并文件的s:(您知道如何读取文件,并且有很多库支持在Java中使用XML。这应该不是问题。