编辑内容xml文件使用JDOM2

时间:2012-08-30 13:28:03

标签: java xml jdom jdom-2

我想在下一个情况下询问你的建议。我有货物的xml文件。商品可能没有库存(在这种情况下我使用<not-in-stock/>空标签)或库存(在这种情况下,我使用标签<price>value_price</price>并且不使用标签<not-in-stock/>)。

我尝试在jsp页面中编辑数据。我只有一个想法:按名称获取元素价格的价值,如果值为空我在非库存中更改元素的名称。

如果你知道更好的决定 - 写在这里。

ElementFilter filter=new org.jdom2.filter.ElementFilter("price");
List<Element> elements = new ArrayList<Element>();

 for(Element c : root.getDescendants(filter))
 {
   elements.add(c);
 }

 if(!elements.isEmpty()){
 for(Element elementForUpdate : elements){
     elementForUpdate.setName("not-in-stock");
     elementForUpdate.setText(""); //I dont know value for empty-tag <not-in-stock/>
     XMLOutputter output=new XMLOutputter();
     output.output(doc, new FileOutputStream(file));
 }
 }

1 个答案:

答案 0 :(得分:1)

您需要从文档对象中搜索<not-in-stock/>节点,设置/修改文本/名称并保存。

 ElementFilter filter=new org.jdom2.filter.ElementFilter("not-in-stock");
 Element searchElement=null;
 for(Element c:root.getDescendants(filter))
 {
   searchElement=c;
   break;
 }
 if(searchElement!=null){
     searchElement.setName("NewName");
     searchElement.setText("Something is diff");
     XMLOutputter output=new XMLOutputter();
     output.output(doc, new FileOutputStream(file));
 }