因为我们平常经常会对一个xml文件中的内容进行修改,修改之后还需要把修改的结果回写回去,这里就存在一个如何回写的问题。我搜集了几种回写的方法,欢迎大家提出意见。
第一种方法是使用jaxp的transformer来完成:
//这里首先是你自己解析xml,可以使用任何的解析方式
domparser pa = new domparser();
pa.parse(uri);
document doc = pa.getdocument();
//有了document你就可以获取任何xml中的属性,并且做修改
……
//现在是具体的回写
domsource source = new domsource(doc);//这个doc是update过的doc
file nf = new file(yoururl);//这个yoururl是你要回写的xml路径
streamresult sr = new streamresult(nf);
transformerfactory tf = transformerfactory.newinstance();
transformer t = tf.newtransformer();
//下面是可以对新生成的xml进行一些基本属性设置
properties properties = t.getoutputproperties();
//这是设置是否需要xml文件开头的描述(<?xml version="1.0"?>);
properties.setproperty(outputkeys.omit_xml_declaration, "yes");
//这是设置输出自动缩进
properties.setproperty(outputkeys.indent, "yes");
t.setoutputproperties(properties);
t.transform(source, sr);
ok,大功告成,新的xml文件已经生成。这里有一个要注意的,如果你只是想生成一个新的xml(不同于原有的xml)那么就把yoururl设成和原有的xml不同就可以,而希望是回写那么就保持一致啦。
