我有一个xml文件如下

<abc>
  <property>
    <Recentlyopenedfiles>
    <File Path="c:\hai.txt" />
    <File Path="C:\old.java" />
    </Recentlyopenedfiles>
   </property>
</abc>

我使用JDOM2 SAXBu建器来解析Java中的XML。我需要保存在<Recentlyopenedfiles>中所有最近打开的文件。最多只能保存三个路径(即3个最近打开的文件路径)。
所以,我需要知道
是否有任何机制可以设置子节点的限制?
如何索引子项并执行堆栈操作以使最后打开的文件
保存在第一个文件路径中。
谢谢。

最佳答案

乔恩的回答最接近我的建议。它的麦加教派比听起来容易:

Document doc = saxbuilder.build(....);
Element abc = doc.getRootElement();
Element recentelement = abc.getChild("properties").getChild("Recentlyopenedfiles");
List<Element> recentfiles = recentelement.getChildren("File");
recentfiles.add(0, new Element("File").setAttribute("Path", filepath));
while (recentfiles.size() > 3) {
   recentfiles.remove(3);
}
XMLOutputter xout = new XMLOutputter(Format.getPrettyFormat());
xout.output(doc, outputstream);

07-27 13:37