用于存储和使用XML元素属性的数据结构

时间:2013-06-03 19:57:23

标签: java

我正在解析XML文件并在内部构建树。这是我们XML格式的GUI编辑器,允许用户轻松修改XML文件,而无需实际进入原始数据。它还为我们的数据提供各种功能。

XML文件中的每个元素都对应树上的一个节点,但现在我正在考虑如何存储属性以便我可以

  1. 在表格中显示
  2. 修改其值
  3. 我想过使用HashMap,其中键是属性名称,值是该属性的对应值。例如,我可能会有像

    这样的东西
    myattrs.put("Attr1", ... );
    myattrs.put("Attr2", ... );
    myattrs.put("Attr3", ... );
    

    但是,我还希望以一定的顺序显示它们。这也不是一个真正的问题:我可以让一个数组指定这个顺序,并使用它来填充一个表。

    return new String[] { "Attr3", "Attr1", "Attr2" }
    

    然而,这种设计意味着我正在对键进行硬编码。

    是否有其他方法可以存储属性,以便我可以快速查找它们,按特定顺序显示它们,还能够修改与该属性关联的值?

1 个答案:

答案 0 :(得分:1)

您可以使用LinkedHashMap代替HashMap。键顺序将被保留。

然而,你似乎走错了路。 XML是一种层次结构,通常以树形式呈现。我不知道你是如何解析XML的,但如果你使用的是DOM,你实际上并不需要其他模型。 DOM(文档对象模型)为您提供了一种标准且众所周知的方法来解析和建模XML文档。

但是等一下。直接使用DOM,你将从19世纪(对不起)前进到现在,直到20世纪末。但请查看您的日历。现在是2013年。看看JAXB或其他更高级别的工具,让您的生活更轻松。祝好运。

在您的路上不要犹豫提问。