Risiko94

XMLDocument

Jun 9th, 2016
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.94 KB | None | 0 0
  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5.  
  6. import javax.xml.parsers.DocumentBuilder;
  7. import javax.xml.parsers.DocumentBuilderFactory;
  8. import javax.xml.parsers.ParserConfigurationException;
  9. import javax.xml.transform.OutputKeys;
  10. import javax.xml.transform.Transformer;
  11. import javax.xml.transform.TransformerConfigurationException;
  12. import javax.xml.transform.TransformerException;
  13. import javax.xml.transform.TransformerFactory;
  14. import javax.xml.transform.TransformerFactoryConfigurationError;
  15. import javax.xml.transform.dom.DOMSource;
  16. import javax.xml.transform.stream.StreamResult;
  17.  
  18. import org.w3c.dom.DOMException;
  19. import org.w3c.dom.Document;
  20. import org.w3c.dom.Element;
  21. import org.w3c.dom.Node;
  22. import org.w3c.dom.NodeList;
  23. import org.xml.sax.SAXException;
  24.  
  25. public class XMLDocument {
  26.     Document doc;
  27.  
  28.     //add seasonslashcurrentsong to Node sn
  29.     public void appendelement(String seasonslashcurrentsong, Node sn) {
  30.         Element ele = this.doc.createElement("soundFile");
  31.         ele.setAttribute("fileName", seasonslashcurrentsong);
  32.         sn.appendChild(ele);
  33.         System.out.println("File: " + seasonslashcurrentsong + " was added.");
  34.     }
  35.  
  36.     public NodeList getElementsByTagName(String tagname) {
  37.         return this.doc.getElementsByTagName(tagname);
  38.     }
  39.  
  40.     // Set the correct xml Header and release the finished xml Document at path
  41.     public void releasexml(File path) {
  42.         try {
  43.             // these are necessary to make sure the xml.header stays the same
  44.             TransformerFactory tFactory = TransformerFactory.newInstance();
  45.             Transformer transformer = tFactory.newTransformer();
  46.             transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "yes");
  47.             transformer.setOutputProperty(OutputKeys.ENCODING, this.doc.getXmlEncoding());
  48.             transformer.setOutputProperty(OutputKeys.VERSION, this.doc.getXmlVersion());
  49.             transformer.setOutputProperty(OutputKeys.INDENT, "yes");
  50.  
  51.             DOMSource source = new DOMSource(this.doc);
  52.             StreamResult result = new StreamResult(new FileOutputStream(path)); // voila
  53.             transformer.transform(source, result);
  54.         } catch (TransformerConfigurationException e) {
  55.             e.printStackTrace();
  56.         } catch (IllegalArgumentException e) {
  57.             e.printStackTrace();
  58.         } catch (FileNotFoundException e) {
  59.             e.printStackTrace();
  60.         } catch (TransformerFactoryConfigurationError e) {
  61.             e.printStackTrace();
  62.         } catch (TransformerException e) {
  63.             e.printStackTrace();
  64.         }
  65.     }
  66.  
  67.     // Constructor from path
  68.     XMLDocument(File path) {
  69.         try {
  70.             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  71.             DocumentBuilder builder = factory.newDocumentBuilder();
  72.             this.doc = builder.parse(path);
  73.             this.doc.setXmlStandalone(true);
  74.         } catch (DOMException e) {
  75.             e.printStackTrace();
  76.         } catch (ParserConfigurationException e) {
  77.             e.printStackTrace();
  78.         } catch (SAXException e) {
  79.             e.printStackTrace();
  80.         } catch (IOException e) {
  81.             e.printStackTrace();
  82.         }
  83.     }
  84. }
Add Comment
Please, Sign In to add comment