如何在不知道文件名的情况下解析 XML 个文件
How to parse XML files without knowledge of filename
我有一个目录,我在其中接收订单作为 XML 文件。我想解析这个文件,然后用它做一些事情。我可以设置一个预定的作业来每隔 * 秒检查一次这个目录。我想用它来解析文件:
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(new File("src/test/resources/example_jdom.xml"));
doc.getDocumentElement().normalize();
问题是,我不知道文件名。我知道 XML 文件将出现的位置,但我不知道该文件将如何命名。
设置路径时如何解决这个问题?
因为如果我愿意,我可以每毫秒 运行 我的预定作业,所以 2 个文件同时出现的机会可以忽略不计。
如果你知道文件最终所在的目录,你可以像这样列出它的内容:
File dir = new File("/your/path");
System.out.println(dir.listFiles());
这应该让您了解哪些内容可用于解析。
另见 https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html#listFiles()
好吧,一个天真的方法是直接列出。
- 取第一个文件
- 如果文件已被处理,请查看数据库
- 如果文件名不存在,则进行处理
- 处理完成后,将文件名和时间戳添加到数据库中。
- 对下一个文件执行相同的操作。
如果您使用的是Java8,下面的代码可以帮助您从目录中获取信息。
try (Stream<Path> walk = Files.walk(Paths.get("C:\test"))) {
result = walk
.filter(p -> !Files.isDirectory(p)) // not a directory
.map(p -> p.toString().toLowerCase()) // convert path to string
.filter(f -> f.endsWith("png")) // check end with
.collect(Collectors.toList()); // collect all matched to a List
}
查看以下 link 以获取完整示例:
https://mkyong.com/java/how-to-find-files-with-certain-extension-only/
我的意思是你会找到很多关于如何获取文件名列表的教程,如果你只对 XML 个文件感兴趣,你可以相应地调整它。
我有一个目录,我在其中接收订单作为 XML 文件。我想解析这个文件,然后用它做一些事情。我可以设置一个预定的作业来每隔 * 秒检查一次这个目录。我想用它来解析文件:
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(new File("src/test/resources/example_jdom.xml"));
doc.getDocumentElement().normalize();
问题是,我不知道文件名。我知道 XML 文件将出现的位置,但我不知道该文件将如何命名。
设置路径时如何解决这个问题? 因为如果我愿意,我可以每毫秒 运行 我的预定作业,所以 2 个文件同时出现的机会可以忽略不计。
如果你知道文件最终所在的目录,你可以像这样列出它的内容:
File dir = new File("/your/path");
System.out.println(dir.listFiles());
这应该让您了解哪些内容可用于解析。 另见 https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/File.html#listFiles()
好吧,一个天真的方法是直接列出。
- 取第一个文件
- 如果文件已被处理,请查看数据库
- 如果文件名不存在,则进行处理
- 处理完成后,将文件名和时间戳添加到数据库中。
- 对下一个文件执行相同的操作。
如果您使用的是Java8,下面的代码可以帮助您从目录中获取信息。
try (Stream<Path> walk = Files.walk(Paths.get("C:\test"))) {
result = walk
.filter(p -> !Files.isDirectory(p)) // not a directory
.map(p -> p.toString().toLowerCase()) // convert path to string
.filter(f -> f.endsWith("png")) // check end with
.collect(Collectors.toList()); // collect all matched to a List
}
查看以下 link 以获取完整示例: https://mkyong.com/java/how-to-find-files-with-certain-extension-only/
我的意思是你会找到很多关于如何获取文件名列表的教程,如果你只对 XML 个文件感兴趣,你可以相应地调整它。