【发布时间】:2014-07-17 18:16:42
【问题描述】:
我有一个目录,里面有 3 个文件。这应该遍历文件并处理每个 xml 文件。它会根据其中包含的元素来查找元素“Booking”或“BookingOutputPlan”,并以不同的方式进行处理。
NodeList l = null;
NodeList n = null;
int counter = 0;
for (counter = 0; counter < files.size(); counter++) {
Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(files.get(counter));
l = d.getElementsByTagName("Booking");
n = d.getElementsByTagName("BookTripPlanOutput");
}
for (int i = 0; i < l.getLength(); ++i) {
GMFiles.add(files.get(i));
processGMXml(GMFiles, prop, log);
}
for (int a = 0; a < n.getLength(); ++a) {
ACFiles.add(files.get(a));
processACXml(ACFiles, prop, log);
}
}
我通过这样做得到文件的数组列表:
Properties prop = new Properties();
InputStream in = null;
in = new FileInputStream("config.properties");
// load a properties file
prop.load(in);
in.close();
// location of directory
File directory = new File(prop.getProperty("directory"));
// creates array list of files
ArrayList<File> files = new ArrayList<File>();
// gets all the files in that directory and puts into array
if (directory.isDirectory()) {
File[] listFiles = directory.listFiles();
for (File file : listFiles) {
if (file.isFile()) {
files.add(file.getAbsoluteFile());
}
}// end of for-loop listFiles
【问题讨论】:
-
请详细说明您的问题。有没有例外?
-
它只处理第一个文件然后停止。它不考虑目录中的其他 2 个文件。对不起,我是解析器的新手。