【发布时间】:2016-10-13 12:08:12
【问题描述】:
我有一个 xml 文件:
<?xml version="1.0" encoding="utf-8" ?>
<list>
<file name="a" size="559393"/>
<file name="b" size="1766945"/>
...
</list>
使用 SAX 解析器,我需要获取属性值(在我的例子中是所有标签 file 的名称和大小值)并写入一个集合以供我的程序进一步工作。
我应该如何意识到这一点?为每个标签 file 创建一个包含字段 name 和 size 的对象,并将其全部添加到 ArrayListObject ?
【问题讨论】:
-
听起来没那么难。只需定义一个对象
MyFile与成员 'name' 和 'size',一个ArrayList<MyFile>来填充其中的所有内容并将其与 XML 解析相结合 -
是的。希望使用 SAX 解析器,您可以获得属性名称和大小的值。你可以创建一个 bean/pojo 类,在这里说
FileInfo和name和size。通过解析和迭代 XML 值,您可以将这些值设置在FileInfo对象中,并且可以添加到ArrayList对象中。如果您的文件名是唯一的,您可以使用Map,以避免ArrayList迭代获取值。 -
@Vish 你能解释一下吗:“如果你的文件名是唯一的,你可以使用 Map 来避免 ArrayList 迭代获取值”
-
所以
Map是一个键值对集合。如果文件名是唯一的,则更新的值是可见的,否则将被覆盖。希望我对以下代码很清楚。Map<String, FileInfo> map = new HashMap<String, FileInfo>(); FileInfo fileInfo = new FileInfo(name, size); map.put(name, fileInfo);要获取文件详细信息,您只需要map.get(name)。