我有一个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);