Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 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. file = new File("Database\\" + DataBaseName + "\\" + TableName);
  62. file.mkdirs();
  63.  
  64. StreamResult result = new StreamResult(new File("Database\\" + DataBaseName + "\\" + TableName +"\\"+TableName+ ".xml"));
  65. try
  66. {
  67. transformer.transform(source, result);
  68. } catch (TransformerException e)
  69. {
  70. e.printStackTrace();
  71. return false;
  72. }
  73. return true;
  74. }
  75.  
  76. public LinkedList<LinkedList> convertFromXml(String dataBase, String table, List<Class> types, LinkedList<String> Labels) {
  77. LinkedList<LinkedList> data = new LinkedList<>();
  78. try {
  79. File file = new File("Database\\" + dataBase + "\\" + table + "\\"+table+".xml");
  80. DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
  81. DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
  82. Document doc = dBuilder.parse(file);
  83. doc.getDocumentElement().normalize();
  84. NodeList nList = doc.getElementsByTagName(table);
  85. for (int i = 0; i < nList.getLength(); i++)
  86. {
  87. Node nNode = nList.item(i);
  88. LinkedList<Object> row = new LinkedList<>();
  89. Element eElement = (Element) nNode;
  90. for (int j = 0; j < Labels.size(); j++)
  91. {
  92. String str = eElement.getAttribute(Labels.get(j));
  93. if (str.equals("null"))
  94. {
  95. row.add(null);
  96. } else if (types.get(j) == String.class)
  97. {
  98. row.add(str);
  99. } else if (types.get(j) == int.class)
  100. {
  101. row.add(Integer.parseInt(str));
  102. } else if (types.get(j) == boolean.class)
  103. {
  104. row.add(Boolean.parseBoolean(str));
  105. } else if (types.get(j) == float.class)
  106. {
  107. row.add(Float.parseFloat(str));
  108. } else if (types.get(j) == Double.class)
  109. {
  110. row.add(Double.parseDouble(str));
  111. } else {
  112. throw new Exception("not supported type");
  113. }
  114.  
  115. System.out.println(str);
  116. }
  117. data.add(row);
  118.  
  119. }
  120.  
  121. } catch (Exception e)
  122. {
  123. System.out.println(e);
  124. }
  125. return data;
  126. }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement