Android应用程序体系结构-浏览xml文件

问题描述

| 这更多是关于Android的总体体系结构问题,我很好奇社区认为此类尝试的最佳实践。我正在开发一个Android应用程序,该应用程序加载存储在设备上的xml文件。我的第一个问题是,当您在Android应用程序范围内处理格式化的xml文件时,该应用程序的要点是通过xml的节点进行“浏览”,对于\ “将xml \”(不确定该术语是什么)加载到内存中,然后这样做吗?还是采用xml,将其写入内部数据库(仍然习惯于整个sql Lite概念),然后以这种方式浏览数据是否更聪明?后者似乎是一种绕行的方式,但是我试图在这里理解核心概念。 这使我想到了第二个问题。如果我想从这个XML“流”中获取数据的方式,就我所知道的关于Android的直接答案就是一堆ListView。节点1有2个选择。这会将两个选择加载到ListView中。当您单击第一个节点时,它将转到xml中的相应子节点,该子节点有四个选择。我创建具有4个选择的ListView。等等等等。 这合乎逻辑吗?我是否看错方法?有没有更好的方法来使用更有意义的其他对象呢?对我已经做过比较的所有事情的引用也会有所帮助。谢谢!!     

解决方法

        不要将XML转换为sqlite数据库。只需在内存中解析它即可。 至于您的其他问题,我将进行一个从ѭ0扩展的活动。覆盖
onListItemClick()
,并使用某种指向下一个要浏览的元素的指针使其重新开始活动。 这样做可以使活动堆栈在用户按下“后退”按钮时表现良好。     ,        在很大程度上取决于您拥有的特定用例和XML文件的大小。在大多数情况下,除非您已经具有以XML表示且适合持久性的数据模型,否则我认为很难将XML放入数据库中。您肯定不想使用随机XML。 如果您的XML较小,则可以始终使用DOM将其加载到内存中。这将使导航变得容易。但是对于大型XML,您需要考虑一些流API(Stax)并直接从文件中读取。     ,        SQLite是关系数据库,因此仅在需要对数据执行关系操作时(例如选择/更新/分组等),才需要将xml中的数据存储在DB中。如果您只需要遍历DOM并做一些事情(例如计算特定节点),我相信您不应该将xml解析为DB。