Advertisement
Guest User

Untitled

a guest
Mar 8th, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.10 KB | None | 0 0
  1. import javax.xml.parsers.*;
  2. import org.w3c.dom.*;
  3. import org.xml.sax.SAXException;
  4. import java.io.*;
  5. import java.util.*;
  6. import java.sql.*;
  7.  
  8. public class XMLParser {
  9.  
  10. public static void main(String argv[]) throws FileNotFoundException, IOException, ParserConfigurationException, SAXException, ClassNotFoundException, SQLException
  11. { Connection con = null;
  12. PreparedStatement statement = null;
  13. Class.forName("oracle.jdbc.driver.OracleDriver");
  14. con = DriverManager.getConnection("jdbc:oracle:thin:@:1521:XE","2656866","XOXOL1221");
  15. Scanner filename = new Scanner(System.in);
  16. String inputFileName;
  17. System.out.print("nName of the XML file to be read: n");
  18. inputFileName = filename.next().trim();
  19. File file = new File(inputFileName);
  20.  
  21. DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
  22. DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
  23. Document doc = dBuilder.parse(file);
  24. doc.getDocumentElement().normalize();
  25. System.out.println("Root element of the XML document:" + doc.getDocumentElement().getNodeName());
  26. System.out.println("-----------------------");
  27.  
  28. Element docEle = doc.getDocumentElement();
  29. NodeList bookList = docEle.getElementsByTagName("book");
  30. //Statement to insert the values in the book table
  31. String statement1 = "insert into BOOK values(?, ?, ?, ?, ?, ?)";
  32. for (int i = 0; i < bookList.getLength(); i++)
  33. { LinkedHashMap<String, String> data = new LinkedHashMap<String, String>();
  34. NodeList nNode = bookList.item(i).getChildNodes();
  35. Node currentitem = bookList.item(i);
  36. String s = null;
  37. if(currentitem.hasAttributes())
  38. s = currentitem.getAttributes().getNamedItem("price").getNodeValue();
  39. for(int j = 0; j< nNode.getLength(); j++)
  40. {
  41. Node node = nNode.item(j);
  42. if (node instanceof Element)
  43. { Element element = (Element) nNode.item(j);
  44. NodeList childList = nNode.item(j).getChildNodes();
  45. if(childList.getLength() == 1)
  46. { System.out.println(element.getTagName().toUpperCase() + ": " + element.getTextContent());
  47. if(!data.containsKey(element.getTagName()))
  48. data.put(element.getTagName(), element.getTextContent());
  49. else
  50. {
  51. String str = data.get(element.getTagName()) + "," + element.getTextContent();
  52. data.put(element.getTagName(), str);
  53. }
  54. }
  55. else
  56. {
  57. for(int k = 0; k< childList.getLength(); k++)
  58. {
  59. Node childnode = childList.item(k);
  60. if (childnode instanceof Element)
  61. { Element childelement = (Element) childList.item(k);
  62. NodeList childList2 = childList.item(k).getChildNodes();
  63. if(childList2.getLength() == 1)
  64. { System.out.println(childelement.getTagName().toUpperCase() + ": " + childelement.getTextContent());
  65. if(!data.containsKey(childelement.getTagName()))
  66. data.put(childelement.getTagName(), childelement.getTextContent());
  67. else
  68. {
  69. String str = data.get(childelement.getTagName()) + "," + childelement.getTextContent();
  70. data.put(childelement.getTagName(), str);
  71. }
  72. }
  73. else
  74. {
  75. for(int l = 0; l< childList2.getLength(); l++)
  76. {
  77. Node cnode = childList2.item(l);
  78. if (cnode instanceof Element)
  79. { Element celement = (Element) childList2.item(l);
  80. System.out.println(celement.getTagName().toUpperCase() + ": " + celement.getTextContent());
  81. if(!data.containsKey(celement.getTagName()))
  82. data.put(celement.getTagName(), celement.getTextContent());
  83. else
  84. {
  85. String str = data.get(celement.getTagName()) + "," + celement.getTextContent();
  86. data.put(celement.getTagName(), str);
  87. }
  88. }
  89. }
  90. }
  91. }
  92. }
  93. }
  94. }
  95. }
  96.  
  97. if(data.containsKey("first-name") || data.containsKey("last-name"))
  98. { String concat_f_l_names = data.get("author") + "," + data.get("first-name") + " " + data.get("last-name");
  99. data.remove("first-name");
  100. data.remove("last-name");
  101. data.put("author", concat_f_l_names);
  102. }
  103. if(data.containsKey("street") || data.containsKey("zip"))
  104. { String concat_f_l_names = data.get("street") + "," + data.get("zip");
  105. data.remove("street");
  106. data.remove("zip");
  107. data.put("address", concat_f_l_names);
  108. }
  109. data.put("price", s);
  110. statement = con.prepareStatement(statement1);
  111. statement.setString(1, data.get("publisher"));
  112. statement.setString(2, data.get("author"));
  113. statement.setString(3, data.get("title"));
  114. statement.setString(4, data.get("year"));
  115. statement.setString(5, data.get("address"));
  116. statement.setString(6, data.get("price"));
  117. statement.executeUpdate();
  118. }
  119. System.out.print("Values updated in the BOOK table");
  120.  
  121. //Statement to insert in the Paper table
  122. String statement2 = "insert into PAPER values(?, ?, ?, ?, ?, ?)";
  123. NodeList paperList = docEle.getElementsByTagName("paper");
  124. for (int i = 0; i < paperList.getLength(); i++)
  125. { LinkedHashMap<String, String> data = new LinkedHashMap<String, String>();
  126. NodeList nNode = paperList.item(i).getChildNodes();
  127. Node currentitem = paperList.item(i);
  128. String s = null;
  129. if(currentitem.hasAttributes())
  130. s = currentitem.getAttributes().getNamedItem("price").getNodeValue();
  131. for(int j = 0; j< nNode.getLength(); j++)
  132. {
  133. Node node = nNode.item(j);
  134. if (node instanceof Element)
  135. { Element element = (Element) nNode.item(j);
  136. NodeList childList = nNode.item(j).getChildNodes();
  137. if(childList.getLength() == 1)
  138. { System.out.println(element.getTagName().toUpperCase() + ": " + element.getTextContent());
  139. if(!data.containsKey(element.getTagName()))
  140. data.put(element.getTagName(), element.getTextContent());
  141. else
  142. {
  143. String str = data.get(element.getTagName()) + "," + element.getTextContent();
  144. data.put(element.getTagName(), str);
  145. }
  146. }
  147. else
  148. {
  149. for(int k = 0; k< childList.getLength(); k++)
  150. {
  151. Node childnode = childList.item(k);
  152. if (childnode instanceof Element)
  153. { Element childelement = (Element) childList.item(k);
  154. NodeList childList2 = childList.item(k).getChildNodes();
  155. if(childList2.getLength() == 1)
  156. { System.out.println(childelement.getTagName().toUpperCase() + ": " + childelement.getTextContent());
  157. if(!data.containsKey(childelement.getTagName()))
  158. data.put(childelement.getTagName(), childelement.getTextContent());
  159. else
  160. {
  161. String str = data.get(childelement.getTagName()) + "," + childelement.getTextContent();
  162. data.put(childelement.getTagName(), str);
  163. }
  164. }
  165. else
  166. {
  167. for(int l = 0; l< childList2.getLength(); l++)
  168. {
  169. Node cnode = childList2.item(l);
  170. if (cnode instanceof Element)
  171. { Element celement = (Element) childList2.item(l);
  172. System.out.println(celement.getTagName().toUpperCase() + ": " + celement.getTextContent());
  173. if(!data.containsKey(celement.getTagName()))
  174. data.put(celement.getTagName(), celement.getTextContent());
  175. else
  176. {
  177. String str = data.get(celement.getTagName()) + "," + celement.getTextContent();
  178. data.put(celement.getTagName(), str);
  179. }
  180. }
  181. }
  182. }
  183. }
  184. }
  185. }
  186. }
  187. }
  188.  
  189. if(data.containsKey("first-name") || data.containsKey("last-name"))
  190. { String concat_f_l_names = data.get("author") + "," + data.get("first-name") + " " + data.get("last-name");
  191. data.remove("first-name");
  192. data.remove("last-name");
  193. data.put("author", concat_f_l_names);
  194. }
  195. if(data.containsKey("street") || data.containsKey("zip"))
  196. { String concat_f_l_names = data.get("street") + "," + data.get("zip");
  197. data.remove("street");
  198. data.remove("zip");
  199. data.put("address", concat_f_l_names);
  200. }
  201. data.put("price", s);
  202. statement = con.prepareStatement(statement2);
  203. statement.setString(1, data.get("publisher"));
  204. statement.setString(2, data.get("author"));
  205. statement.setString(3, data.get("title"));
  206. statement.setString(4, data.get("year"));
  207. statement.setString(5, data.get("address"));
  208. statement.setString(6, data.get("price"));
  209. statement.executeUpdate();
  210. }
  211. System.out.print("Values updated in the PAPER table");
  212. }
  213. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement