Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.xml.parsers.*;
- import org.w3c.dom.*;
- import org.xml.sax.SAXException;
- import java.io.*;
- import java.util.*;
- import java.sql.*;
- public class XMLParser {
- public static void main(String argv[]) throws FileNotFoundException, IOException, ParserConfigurationException, SAXException, ClassNotFoundException, SQLException
- { Connection con = null;
- PreparedStatement statement = null;
- Class.forName("oracle.jdbc.driver.OracleDriver");
- con = DriverManager.getConnection("jdbc:oracle:thin:@:1521:XE","2656866","XOXOL1221");
- Scanner filename = new Scanner(System.in);
- String inputFileName;
- System.out.print("nName of the XML file to be read: n");
- inputFileName = filename.next().trim();
- File file = new File(inputFileName);
- DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
- DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
- Document doc = dBuilder.parse(file);
- doc.getDocumentElement().normalize();
- System.out.println("Root element of the XML document:" + doc.getDocumentElement().getNodeName());
- System.out.println("-----------------------");
- Element docEle = doc.getDocumentElement();
- NodeList bookList = docEle.getElementsByTagName("book");
- //Statement to insert the values in the book table
- String statement1 = "insert into BOOK values(?, ?, ?, ?, ?, ?)";
- for (int i = 0; i < bookList.getLength(); i++)
- { LinkedHashMap<String, String> data = new LinkedHashMap<String, String>();
- NodeList nNode = bookList.item(i).getChildNodes();
- Node currentitem = bookList.item(i);
- String s = null;
- if(currentitem.hasAttributes())
- s = currentitem.getAttributes().getNamedItem("price").getNodeValue();
- for(int j = 0; j< nNode.getLength(); j++)
- {
- Node node = nNode.item(j);
- if (node instanceof Element)
- { Element element = (Element) nNode.item(j);
- NodeList childList = nNode.item(j).getChildNodes();
- if(childList.getLength() == 1)
- { System.out.println(element.getTagName().toUpperCase() + ": " + element.getTextContent());
- if(!data.containsKey(element.getTagName()))
- data.put(element.getTagName(), element.getTextContent());
- else
- {
- String str = data.get(element.getTagName()) + "," + element.getTextContent();
- data.put(element.getTagName(), str);
- }
- }
- else
- {
- for(int k = 0; k< childList.getLength(); k++)
- {
- Node childnode = childList.item(k);
- if (childnode instanceof Element)
- { Element childelement = (Element) childList.item(k);
- NodeList childList2 = childList.item(k).getChildNodes();
- if(childList2.getLength() == 1)
- { System.out.println(childelement.getTagName().toUpperCase() + ": " + childelement.getTextContent());
- if(!data.containsKey(childelement.getTagName()))
- data.put(childelement.getTagName(), childelement.getTextContent());
- else
- {
- String str = data.get(childelement.getTagName()) + "," + childelement.getTextContent();
- data.put(childelement.getTagName(), str);
- }
- }
- else
- {
- for(int l = 0; l< childList2.getLength(); l++)
- {
- Node cnode = childList2.item(l);
- if (cnode instanceof Element)
- { Element celement = (Element) childList2.item(l);
- System.out.println(celement.getTagName().toUpperCase() + ": " + celement.getTextContent());
- if(!data.containsKey(celement.getTagName()))
- data.put(celement.getTagName(), celement.getTextContent());
- else
- {
- String str = data.get(celement.getTagName()) + "," + celement.getTextContent();
- data.put(celement.getTagName(), str);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- if(data.containsKey("first-name") || data.containsKey("last-name"))
- { String concat_f_l_names = data.get("author") + "," + data.get("first-name") + " " + data.get("last-name");
- data.remove("first-name");
- data.remove("last-name");
- data.put("author", concat_f_l_names);
- }
- if(data.containsKey("street") || data.containsKey("zip"))
- { String concat_f_l_names = data.get("street") + "," + data.get("zip");
- data.remove("street");
- data.remove("zip");
- data.put("address", concat_f_l_names);
- }
- data.put("price", s);
- statement = con.prepareStatement(statement1);
- statement.setString(1, data.get("publisher"));
- statement.setString(2, data.get("author"));
- statement.setString(3, data.get("title"));
- statement.setString(4, data.get("year"));
- statement.setString(5, data.get("address"));
- statement.setString(6, data.get("price"));
- statement.executeUpdate();
- }
- System.out.print("Values updated in the BOOK table");
- //Statement to insert in the Paper table
- String statement2 = "insert into PAPER values(?, ?, ?, ?, ?, ?)";
- NodeList paperList = docEle.getElementsByTagName("paper");
- for (int i = 0; i < paperList.getLength(); i++)
- { LinkedHashMap<String, String> data = new LinkedHashMap<String, String>();
- NodeList nNode = paperList.item(i).getChildNodes();
- Node currentitem = paperList.item(i);
- String s = null;
- if(currentitem.hasAttributes())
- s = currentitem.getAttributes().getNamedItem("price").getNodeValue();
- for(int j = 0; j< nNode.getLength(); j++)
- {
- Node node = nNode.item(j);
- if (node instanceof Element)
- { Element element = (Element) nNode.item(j);
- NodeList childList = nNode.item(j).getChildNodes();
- if(childList.getLength() == 1)
- { System.out.println(element.getTagName().toUpperCase() + ": " + element.getTextContent());
- if(!data.containsKey(element.getTagName()))
- data.put(element.getTagName(), element.getTextContent());
- else
- {
- String str = data.get(element.getTagName()) + "," + element.getTextContent();
- data.put(element.getTagName(), str);
- }
- }
- else
- {
- for(int k = 0; k< childList.getLength(); k++)
- {
- Node childnode = childList.item(k);
- if (childnode instanceof Element)
- { Element childelement = (Element) childList.item(k);
- NodeList childList2 = childList.item(k).getChildNodes();
- if(childList2.getLength() == 1)
- { System.out.println(childelement.getTagName().toUpperCase() + ": " + childelement.getTextContent());
- if(!data.containsKey(childelement.getTagName()))
- data.put(childelement.getTagName(), childelement.getTextContent());
- else
- {
- String str = data.get(childelement.getTagName()) + "," + childelement.getTextContent();
- data.put(childelement.getTagName(), str);
- }
- }
- else
- {
- for(int l = 0; l< childList2.getLength(); l++)
- {
- Node cnode = childList2.item(l);
- if (cnode instanceof Element)
- { Element celement = (Element) childList2.item(l);
- System.out.println(celement.getTagName().toUpperCase() + ": " + celement.getTextContent());
- if(!data.containsKey(celement.getTagName()))
- data.put(celement.getTagName(), celement.getTextContent());
- else
- {
- String str = data.get(celement.getTagName()) + "," + celement.getTextContent();
- data.put(celement.getTagName(), str);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- if(data.containsKey("first-name") || data.containsKey("last-name"))
- { String concat_f_l_names = data.get("author") + "," + data.get("first-name") + " " + data.get("last-name");
- data.remove("first-name");
- data.remove("last-name");
- data.put("author", concat_f_l_names);
- }
- if(data.containsKey("street") || data.containsKey("zip"))
- { String concat_f_l_names = data.get("street") + "," + data.get("zip");
- data.remove("street");
- data.remove("zip");
- data.put("address", concat_f_l_names);
- }
- data.put("price", s);
- statement = con.prepareStatement(statement2);
- statement.setString(1, data.get("publisher"));
- statement.setString(2, data.get("author"));
- statement.setString(3, data.get("title"));
- statement.setString(4, data.get("year"));
- statement.setString(5, data.get("address"));
- statement.setString(6, data.get("price"));
- statement.executeUpdate();
- }
- System.out.print("Values updated in the PAPER table");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement