4

我有一大堆需要阅读的 XML 源代码。它们没有模式,虽然它们的格式都很好并且只包含字符串,但它们也没有真正共享一个结构;有些只有一层,有些是多层,有些包含重复的块/记录,而另一些则包含一堆不同的块,描述特定记录的不同方面。

以前,我使用javax.xml.parsers.SAXParser自定义处理程序来获取 XML 输入并使用它来设置自定义对象的字段,当我只有一件事要读取时,这很好,具有我预先知道的固定结构和记录数量并且没有子键或子子键。在 PHP 中,我会将整个内容读入一个多维关联数组,但 Java 似乎没有完全等价的。

我想我需要某种MapList,但我不明白什么类型或如何使用它。是否有标准的 Android 方式来执行此操作?

4

2 回答 2

1

You can have a List of Maps to simulate multidimensional Array in PHP.

List<Map<String, String>> multidimArray = new ArrayList<Map<String, String>>();

// This is the first element in Array
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
multidimArray.add(map);
于 2013-05-05T17:35:07.530 回答
1

有许多不同的或多或少的标准 XML 对象模型:您应该使用其中一种。这篇文章在 Android 上使用 XML总结了一些适用于 Android 的选项。DOM 是使用最广泛的文档对象模型。直接使用它的 API 有点可怕,但您可以使用 查询它XPath,这是访问 XML 树中不同节点的便捷语法(请参阅javax.xml.xpath | Android Developer)。

于 2013-05-05T18:44:35.200 回答