Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.59 KB | None | 0 0
  1. package com.company;
  2.  
  3. import org.w3c.dom.*;
  4. import javax.xml.parsers.DocumentBuilder;
  5. import javax.xml.parsers.DocumentBuilderFactory;
  6. import javax.xml.parsers.ParserConfigurationException;
  7. import javax.xml.transform.Transformer;
  8. import javax.xml.transform.TransformerConfigurationException;
  9. import javax.xml.transform.TransformerException;
  10. import javax.xml.transform.TransformerFactory;
  11. import javax.xml.transform.dom.DOMSource;
  12. import javax.xml.transform.stream.StreamResult;
  13. import java.io.File;
  14. import java.util.LinkedList;
  15. import java.util.List;
  16.  
  17. public class XML
  18. {
  19. public boolean convertIntoXml(LinkedList<LinkedList> data, String DataBaseName,String TableName, LinkedList<String> Labels) {
  20.  
  21. DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
  22. DocumentBuilder dBuilder ;
  23. try
  24. {
  25. dBuilder = dbFactory.newDocumentBuilder();
  26. } catch (ParserConfigurationException e) {
  27. e.printStackTrace();
  28. return false;
  29. }
  30. Document doc = dBuilder.newDocument();
  31.  
  32. Element rootElement = doc.createElement(DataBaseName);
  33. doc.appendChild(rootElement);
  34.  
  35. for (LinkedList linkedList : data) {
  36. Element row = doc.createElement(TableName);
  37. rootElement.appendChild(row);
  38. int numberOfColumn = 0;
  39. for (Object object : linkedList) {
  40. Attr attr = doc.createAttribute(Labels.get(numberOfColumn));
  41. attr.setValue(String.valueOf(object));
  42. row.setAttributeNode(attr);
  43. numberOfColumn++;
  44. }
  45. }
  46.  
  47. TransformerFactory transformerFactory = TransformerFactory.newInstance();
  48. Transformer transformer;
  49. try
  50. {
  51. transformer = transformerFactory.newTransformer();
  52. } catch (TransformerConfigurationException e) {
  53. e.printStackTrace();
  54. return false;
  55. }
  56. DOMSource source = new DOMSource(doc);
  57. File file = new File("DataBase");
  58. file.mkdirs();
  59. file = new File("Database\\" + DataBaseName);
  60. file.mkdirs();
  61.  
  62. StreamResult result = new StreamResult(new File("Database\\" + DataBaseName + "\\" + TableName + ".xml"));
  63. try
  64. {
  65. transformer.transform(source, result);
  66. } catch (TransformerException e)
  67. {
  68. e.printStackTrace();
  69. return false;
  70. }
  71. return true;
  72. }
  73.  
  74. public LinkedList<LinkedList> convertFromXml(String dataBase, String table, List<Class> types, LinkedList<String> Labels) {
  75. LinkedList<LinkedList> data = new LinkedList<>();
  76. try {
  77. File file = new File("Database\\" + dataBase + "\\" + table + ".xml");
  78. DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
  79. DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
  80. Document doc = dBuilder.parse(file);
  81. doc.getDocumentElement().normalize();
  82. NodeList nList = doc.getElementsByTagName(table);
  83. for (int i = 0; i < nList.getLength(); i++)
  84. {
  85. Node nNode = nList.item(i);
  86. LinkedList<Object> row = new LinkedList<>();
  87. Element eElement = (Element) nNode;
  88. for (int j = 0; j < Labels.size(); j++)
  89. {
  90. String str = eElement.getAttribute(Labels.get(j));
  91. if (str.equals("null"))
  92. {
  93. row.add(null);
  94. } else if (types.get(j) == String.class)
  95. {
  96. row.add(str);
  97. } else if (types.get(j) == int.class)
  98. {
  99. row.add(Integer.parseInt(str));
  100. } else if (types.get(j) == boolean.class)
  101. {
  102. row.add(Boolean.parseBoolean(str));
  103. } else if (types.get(j) == float.class)
  104. {
  105. row.add(Float.parseFloat(str));
  106. } else if (types.get(j) == Double.class)
  107. {
  108. row.add(Double.parseDouble(str));
  109. } else {
  110. throw new Exception("not supported type");
  111. }
  112.  
  113. System.out.println(str);
  114. }
  115. data.add(row);
  116.  
  117. }
  118.  
  119. } catch (Exception e)
  120. {
  121. System.out.println(e);
  122. }
  123. return data;
  124. }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement