xml
因为我们平常经常会对一个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不同就可以,而希望是回写那么就保持一致啦。