在 Android 中将 XML 文件取消编入 Java 对象?

2022-09-02 01:34:04

我正在使用互联网上的一个API,它将对象编组到XML文件。鉴于 XSD 文件也可用,我希望能够在下载文件后将它们解压缩回 Java 对象。

环顾四周后,看起来JAXB是Java中执行此操作的默认库,但是由于我正在开发移动应用程序,因此额外的8.6MB依赖项是不可接受的。我也找到了XStream,但它仍然重达7.9MB。

环顾Android SDK,看起来唯一可用的真正的XML解析器是SAX

所以问题是:

  1. 有没有办法让SAX做我想做的事?
  2. Android SDK中是否有我错过的另一个工具?
  3. 有没有另一个库(要小得多)可以做到这一点?

谢谢。


答案 1

有一个框架可以在Android上运行,它使用与JAXB类似的注释进行Java到XML绑定,它被称为Simple,重量不到270K,这只是XStream或JAXB所需的一小部分。此外,它没有外部依赖项,只有一个JAR,一切都应该工作。下面是指向 Simple 和 XML Serialization Framework for Java 的链接。

http://simple.sourceforge.net

这还可以处理对象图中的循环。


答案 2

XStream 是 431k。您不需要Android应用程序中的整个分发zip。如果添加 xpp3 拉取解析器以获得更快的性能,则它将添加 24k。这将使您的整个软件包达到455k。仍然不理想,但我可以忍受这一点。


推荐