【问题标题】:Java - How to extract information from many XML files in a directory and export it to an excel fileJava - 如何从目录中的许多 XML 文件中提取信息并将其导出到 excel 文件
【发布时间】:2019-01-03 23:32:15
【问题描述】:

我正在尝试从一个目录中的许多 xml 文件中获取信息。

如何从每个文件中获取特定信息并将其发送到 java 中的 excel 文件

file 1.xml
file 2.xml
file 3.xml

*********

**file.csv** or .**xls** with the information of the 'n' files XML

【问题讨论】:

  • 您到底想提取什么,文件问题中的所有内容都不清楚,所以本质上您想解析 xml 文件并使用标签作为约束并将该数据附加到 xlsx 文件中。
  • 是的,我的 XML 文件的结构如下: xml 版本 = "1.0" 编码 = "utf-8"?> 554433 Cnbv_NumeroOffices> AB / 983 Cnbv_NumeroDocument> DASD / DHF / 44526 Cnbv_SolicitudSiara> 32345 我有大约30个文件,我想将标签Cnbv_NumeroOffic、Cnbv_NumeroDocument和Cnbv_Folio导出到exel文件
  • 是的,这就是我想要做的。
  • 您的问题过于宽泛,最终将被否决并关闭。你有什么尝试吗?你的具体问题是什么?向我们展示您的代码和错误消息(如果有)。你应该阅读How do I ask a good question?

标签: java xml extraction


【解决方案1】:

有几个 Java 库可以帮助您做到这一点。

例如,要从 XML 获取信息,您可以使用 dom4j 并使用库 (examples) 支持的查询语言 XPATH 提取特定信息。为了从一个目录中读取所有 XML 文件,Java 8 有一个简单的方法来实现。

Files.list(Paths.get("/path/to/xml/files"))
        .map(YourXMLParser::parse)
        .forEach(XLSExporter::export);

parse 方法的签名在哪里:

public MyDataBean parse(Path path) {
    InputStream inputStream = Files.newInputStream(Path);
    SAXBuilder saxBuilder = new SAXBuilder(inputStream);
    ... <-- Making use of SAX for instance and return the read data in a custom Bean (MyDataBean)
}

作为 Files.list() 方法返回 Stream 您可以利用它来使用 mapforEach.

获得每个 XML 文件的信息后,您可以使用 Java 中最常用的库将其导出到 XLS:Apache POI

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多