/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.jkan997.slingbeans.slingfs.local; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.xml.sax.SAXException; /** * * @author jakaniew */ public class DescriptorXmlHelper { private final static DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); private final static TransformerFactory tFactory = TransformerFactory.newInstance(); public static Document parse(InputStream is) throws SAXException, ParserConfigurationException, IOException { DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(is); doc.getDocumentElement().normalize(); return doc; } public static void save(Document doc, File documentFile) throws TransformerConfigurationException, FileNotFoundException, TransformerException, IOException { Transformer transformer = tFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); FileOutputStream fos = new FileOutputStream(documentFile); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(fos); transformer.transform(source, result); fos.close(); } }