package eu.eudat.utilities.builders; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; 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.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import eu.eudat.entities.xmlmodels.viewstyledefinition.FieldSet; public class XmlBuilder { public static Document getDocument(){ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder; try { docBuilder = docFactory.newDocumentBuilder(); Document doc = docBuilder.newDocument(); return doc; } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } public static String generateXml(Document doc){ TransformerFactory tFact = TransformerFactory.newInstance(); Transformer trans; try { trans = tFact.newTransformer(); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); DOMSource source = new DOMSource(doc); trans.transform(source, result); return writer.toString(); } catch (TransformerException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } public static Document fromXml(String xml){ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder; try { docBuilder = docFactory.newDocumentBuilder(); InputSource inputStream = new InputSource(new StringReader(xml)); Document doc = docBuilder.parse(inputStream); return doc; } catch (ParserConfigurationException | SAXException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } public static Element getNodeFromListByTagName(NodeList list, String tagName) { for (int temp = 0; temp < list.getLength(); temp++) { Node element = list.item(temp); if (element.getNodeType() == Node.ELEMENT_NODE) { if(element.getNodeName().equals(tagName))return (Element) element; } } return null; } }