项目中遇到了读写xml文件的问题,下面贴上代码再逐一解释
创建xml 的主要类 DocumentHelper
见Line:16
dom = DocumentHelper.createDocument();
dom.setXMLEncoding("utf-8");
创建Document对象并设置编码
写入文件的主要类XMLWriter
格式化xml的辅助类OutputFormat
其创建过程参见Line 10
OutputFormat format = OutputFormat.createPrettyPrint();
writer = new XMLWriter(new FileWriter(filepath), format);
然后Document创建根Element
info2Element()的方法则是将对象转换到Element结构中去。
格式化的主要功臣就是 OutputFormat 相应的还有createCompactFormat() 创建压缩的xml文件,删去了所有的换行等无用的字符。createPrettyPrint() 则是生成格式化的xml 代码,让看起来好读一点。
- private void saveToXmlFile(ProcessInfo[] infos)
- {
- if (dom == null)
- {
- loadProcessInfo(true);
- }
- XMLWriter writer = null;
- try
- {
- OutputFormat format = OutputFormat.createPrettyPrint();
- writer = new XMLWriter(new FileWriter(filepath), format);
- if (dom != null)
- {
- dom.clearContent();
- }
- dom = DocumentHelper.createDocument();
- dom.setXMLEncoding("utf-8");
- Element root = dom.addElement("processes");
- for (int i = 0; i < infos.length; i++)
- {
- info2Element(root, infos[i]);
- }
- writer.write(dom);
- writer.flush();
- }
- catch (IOException e)
- {
- log.error("存储XML文件出错", e);
- }
- finally
- {
- if (writer != null)
- {
- try
- {
- writer.close();
- }
- catch (IOException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
private void saveToXmlFile(ProcessInfo[] infos)
{
if (dom == null)
{
loadProcessInfo(true);
}
XMLWriter writer = null;
try
{
OutputFormat format = OutputFormat.createPrettyPrint();
writer = new XMLWriter(new FileWriter(filepath), format);
if (dom != null)
{
dom.clearContent();
}
dom = DocumentHelper.createDocument();
dom.setXMLEncoding("utf-8");
Element root = dom.addElement("processes");
for (int i = 0; i < infos.length; i++)
{
info2Element(root, infos[i]);
}
writer.write(dom);
writer.flush();
}
catch (IOException e)
{
log.error("存储XML文件出错", e);
}
finally
{
if (writer != null)
{
try
{
writer.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
创建xml 的主要类 DocumentHelper
见Line:16
dom = DocumentHelper.createDocument();
dom.setXMLEncoding("utf-8");
创建Document对象并设置编码
写入文件的主要类XMLWriter
格式化xml的辅助类OutputFormat
其创建过程参见Line 10
OutputFormat format = OutputFormat.createPrettyPrint();
writer = new XMLWriter(new FileWriter(filepath), format);
然后Document创建根Element
info2Element()的方法则是将对象转换到Element结构中去。
格式化的主要功臣就是 OutputFormat 相应的还有createCompactFormat() 创建压缩的xml文件,删去了所有的换行等无用的字符。createPrettyPrint() 则是生成格式化的xml 代码,让看起来好读一点。