1

我正在尝试在 android 中解析 XML 文件,然后将内容保存到 SQLite 数据库。我目前正在使用 JDOM2 以便于阅读代码。就内存问题而言,我认为 JDOM 不会成为问题,因为解析在我的 Galaxy Nexus 上发生得相当快,它位于受支持设备的低端。当关系是一对一时,我可以毫无问题地获取数据,将其保存到 Sqlite 数据库并读取它/生成带有数据的列表视图。但是,由于我遇到的所有解析 XML 的教程都使用一对一 XML 结构,因此我对如何为一对多和多对多执行此操作持空白. 例如,我需要解析的 XML 代码如下所示:

<Name name="Name 1">
    <Location>XYZ</Location>
    <Type>XYZ</Type>
    <Item name="Item 1">
        <SubItem name="XYZ"></SubItem>
        <SubItem name="XYZ"></SubItem>
    </Item>
    <Item name="Item 2">
        <SubItem name="XYZ"></SubItem>
        <SubItem name="XYZ"></SubItem>
    </Item>
</Name>
<Name name="Name 2">
    <Location>XYZ</Location>
    <Type>XYZ</Type>
    <Item name="Item 1">
        <SubItem name="XYZ"></SubItem>
        <SubItem name="XYZ"></SubItem>
    </Item>
    <Item name="Item 2">
        <SubItem name="XYZ"></SubItem>
        <SubItem name="XYZ"></SubItem>
    </Item>
</Name>

我能够轻松获取所有名称、位置和类型,因为所有这些之间只有一对一的关系。它们保存在我数据库的 1 个表中。我需要做的是将所有项目和子项目保存在他们自己的表中,并且仍然将其链接到正确的名称。这对我来说是个问题,很可能是逻辑让我失望。

如果我需要使用不同的解析器,那很好,因为我能够获得与上面使用 XMLPullParser 相同的信息,但我确实喜欢 JDOM2 的简洁性和简洁性,作为一个同时处理 XML 和 Sqlite 的入门级开发人员第一次在一起。

我不关心实际执行操作需要多长时间。如果用户选择将他们的数据导入到应用程序中,这可能是一个一次性的过程,我会在菜单中添加一些内容。我也无法更改 XML 的格式,因为它是由 3rd 方程序生成的,这是他们选择导出数据的格式。

4

0 回答 0