如何在Android中将任意XML读入通用对象?

时间:2013-05-05 14:37:01

标签: android xml-parsing

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

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

我认为我需要某种MapList,但我不明白它是什么类型或如何使用它。是否有标准的Android-y方式吗?

2 个答案:

答案 0 :(得分:1)

您可以List Maps来模拟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);

答案 1 :(得分:1)

有许多不同的或多或少标准的XML对象模型:您应该使用其中一种。本文Working with XML on Android概述了Android的一些选项。 DOM是最广泛可用的文档对象模型。它的API很难直接使用,但您可以使用XPath查询它,这是访问XML树中不同节点的便捷语法(参见javax.xml.xpath | Android Developer)。 / p>