编辑内容xml文件使用JDOM2
问题描述:
我想在下一种情况下询问你的建议。我有货物的XML文件。货物可能没有库存(在这种情况下,我使用<not-in-stock/>
空标签)或库存(在这种情况下,我使用标签<price>value_price</price>
并且不使用标签<not-in-stock/>
)。编辑内容xml文件使用JDOM2
我尝试编辑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));
}
}
答
您需要搜索从文档对象<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));
}
您在第一行中犯了一个错误,因为我应该为价格制作过滤器。你如何看待如果我在xml文件中有多于一个的元素,它有 ,如果我这样做是不正常的(见编辑版本) –
Ray
@Ray - 我不知道什么*是* XML文档的结构到目前为止,只是使用*这个*片段作为参考。 – adatapost
你是否同意上面的决定? – Ray