java - 将大型 XML 文档从一种格式转换为另一种格式的最快、最好的方法

标签 java design-patterns architecture implementation

<分区>

我有一堆大的 XML 文件(所有文件的总大小超过 1 GB),我需要将它们从供应商模式转换为我们的模式。

供应商在其服务器上的某个 FTP 位置有一个 ZIP 文件(它包含大型 XML 文件)。我必须选择该 ZIP 文件,然后转换所有可用的 XML 文件。转换为我们的模式格式后,我需要将数据保存在数据库中。

实现这个的好的设计是什么?支持 Java 的相关工具和实用程序有哪些?

最佳答案

只需使用常规的 Java API...

File zipFile = new File("archive.zip");
File xsltFile = new File("transform.xslt");
File transformedXmlsFile = new File("transformed.xml");

StreamSource xsltSource = new StreamSource(xsltFile);
Transformer transformer = TransformerFactory.newInstance().newTransformer(xsltSource);

ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFile));
ZipEntry zipEntry;
OutputStream resultXmls = new FileOutputStream(transformedXmlsFile);
while ((zipEntry = zipIn.getNextEntry()) != null){
  StreamSource inputXml = new StreamSource(zipIn);
  StreamResult resultXml = new StreamResult(resultXmls);
  transformer.transform(inputXml, resultXml);
}
zipIn.close();
resultXmls.close();

关于java - 将大型 XML 文档从一种格式转换为另一种格式的最快、最好的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12482729/

相关文章:

java - 从 ID 获取用户名 - Discord JDA

java - 在 Jtable 中隐藏特定的单元格网格

design-patterns - 在 PHP 项目中,存在哪些模式来存储、访问和组织辅助对象?

.net - 对 DoFactory 框架的看法?

java - 这是什么设计模式?

java - 将键值转换为 POJO

java - 使用 C3P0 的 JDBC 连接池

java - 静态工厂方法优点

database - 微服务:每个实例或每个微服务的数据源?

java - 如何在 Java Web 应用程序中实现复杂的页面流