编辑内容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)); 
} 
+0

您在第一行中犯了一个错误,因为我应该为价格制作过滤器。你如何看待如果我在xml文件中有多于一个的元素,它有,如果我这样做是不正常的(见编辑版本) – Ray

+0

@Ray - 我不知道什么*是* XML文档的结构到目前为止,只是使用*这个*片段作为参考。 – adatapost

+0

你是否同意上面的决定? – Ray