/*
* Copyright PMEase (c) 2005 - 2010,
* Date: Jun 13, 2010 9:06:56 AM
* All rights reserved.
*
* Revision: $Id$
*/
package com.pmease.quickbuild.monitor.utils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.commons.io.IOUtils;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.xml.sax.SAXException;
import com.pmease.quickbuild.monitor.MonitorException;
public class XMLHelper {
public static Document readXML(File file) {
SAXReader reader = new SAXReader(false);
try {
reader.setValidation(false);
reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
return reader.read(file);
} catch (DocumentException e) {
throw new MonitorException(e);
} catch (SAXException e) {
throw new MonitorException(e);
}
}
public static void writeXML(Document doc, OutputStream out) throws IOException {
XMLWriter writer = null;
try {
OutputFormat outformat = OutputFormat.createPrettyPrint();
outformat.setEncoding("UTF-8");
writer = new XMLWriter(out, outformat);
writer.write(doc);
writer.flush();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
// ignore
}
}
IOUtils.closeQuietly(out);
}
}
public static void writeXML(Document doc, File file) {
try {
writeXML(doc, new FileOutputStream(file));
} catch (FileNotFoundException e) {
throw new MonitorException(e);
} catch (IOException e) {
throw new MonitorException(e);
}
}
}