Advertisement
albertoaguilar8

Untitled

Oct 6th, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.82 KB | None | 0 0
  1. package xmlparsingexample;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.InputStream;
  6. import java.net.URL;
  7. import java.net.URLConnection;
  8. import javax.xml.parsers.*;
  9. import javax.xml.transform.*;
  10. import javax.xml.transform.dom.*;
  11. import javax.xml.transform.stream.*;
  12. import org.w3c.dom.*;
  13. import java.sql.*;
  14. import org.xml.sax.Attributes;
  15. import org.xml.sax.helpers.DefaultHandler;
  16.  
  17. /**
  18.  *
  19.  * @author alberto
  20.  */
  21. public class XMLParsingExample {
  22.  
  23.     static String filename = "/Users/alberto/testing.xml";
  24.    
  25.     /**
  26.      * @param args the command line arguments
  27.      */
  28.     public static void main(String[] args) {
  29.         // TODO code application logic here
  30.         try {
  31.             Connection conn;
  32.            
  33.             DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
  34.             DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
  35.            
  36.             // root element
  37.             Document doc = docBuilder.newDocument();
  38.             Element rootElement = doc.createElement("wad_course");
  39.             doc.appendChild( rootElement );
  40.  
  41.             String s =
  42.                 "jdbc:mysql://cml.chi.itesm.mx/wad?user=wad&password=p5zVDmq4IGto";
  43.             conn = DriverManager.getConnection( s );
  44.  
  45.             Statement stmt = conn.createStatement();
  46.             ResultSet rs = stmt.executeQuery("select * from student");
  47.             while ( rs.next() ) {
  48.                 String i = rs.getString("id");
  49.                 String first = rs.getString("firstname");
  50.                 String last = rs.getString("lastname");
  51.                 String nick = rs.getString("nickname");
  52.                 String g = rs.getString("grade");
  53.                
  54.                 // student element
  55.                 Element student = doc.createElement("student");
  56.                 student.setAttribute("id", i);
  57.  
  58.                 // add student to root
  59.                 rootElement.appendChild( student );
  60.  
  61.                 // first name
  62.                 Element firstname = doc.createElement("firstname");
  63.                 firstname.appendChild( doc.createTextNode(first) );
  64.                 student.appendChild( firstname );
  65.  
  66.                 // last name
  67.                 Element lastname = doc.createElement("lastname");
  68.                 lastname.appendChild( doc.createTextNode( last) );
  69.                 student.appendChild( lastname );
  70.  
  71.                 // nickname
  72.                 Element nickname = doc.createElement("nickname");
  73.                 nickname.appendChild( doc.createTextNode(nick) );
  74.                 student.appendChild( nickname );
  75.  
  76.                 // grade
  77.                 Element grade = doc.createElement("grade");
  78.                 grade.appendChild( doc.createTextNode(g));
  79.                 student.appendChild( grade );
  80.             }
  81.            
  82.            
  83.             // write to XML file
  84.             TransformerFactory transformerFactory = TransformerFactory.newInstance();
  85.             Transformer transformer = transformerFactory.newTransformer();
  86.             DOMSource source = new DOMSource( doc );
  87.             StreamResult result = new StreamResult( new File(filename));
  88.             transformer.transform( source, result);
  89.            
  90.         } catch (Exception e) {
  91.             System.out.println(e.getLocalizedMessage());
  92.         }
  93.        
  94.         readfile();
  95.         saxParsing();
  96.     }
  97.  
  98.     public static void readfile() {
  99.         try {
  100.  
  101.             File fXmlFile = new File(filename);
  102.             DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
  103.             DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
  104.             Document doc = dBuilder.parse(fXmlFile);
  105.             doc.getDocumentElement().normalize();
  106.  
  107.             System.out.println("Root element : " + doc.getDocumentElement().getNodeName());
  108.             NodeList nList = doc.getElementsByTagName("student");
  109.             System.out.println("-----------------------");
  110.  
  111.             for (int temp = 0; temp < nList.getLength(); temp++) {
  112.  
  113.                 Node nNode = nList.item(temp);
  114.                 NamedNodeMap atts = nNode.getAttributes();
  115.  
  116.                 System.out.println(nNode.getNodeName());
  117.                 Node id = atts.getNamedItem("id");
  118.                 if (id != null) {
  119.                     System.out.println("ID: " + id.getNodeValue());
  120.                 }
  121.                
  122.                 if (nNode.getNodeType() == Node.ELEMENT_NODE) {
  123.  
  124.                     Element eElement = (Element) nNode;
  125.  
  126.                     System.out.println("First Name : " + getTagValue("firstname", eElement));
  127.                     System.out.println("Last Name : " + getTagValue("lastname", eElement));
  128.                     System.out.println("Nick Name : " + getTagValue("nickname", eElement));
  129.                     System.out.println("Grade : " + getTagValue("grade", eElement));
  130.  
  131.                 }
  132.             }
  133.         } catch (Exception e) {
  134.             e.printStackTrace();
  135.         }
  136.     }
  137.  
  138.     private static String getTagValue(String sTag, Element eElement) {
  139.         NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes();
  140.         Node nValue = (Node) nlList.item(0);
  141.  
  142.         return nValue.getNodeValue();
  143.     }
  144.    
  145.     public static void saxParsing() {
  146.         try {
  147.             SAXParserFactory factory = SAXParserFactory.newInstance();
  148.             SAXParser saxParser = factory.newSAXParser();
  149.            
  150.             DefaultHandler handler = new DefaultHandler() {
  151.                
  152.                 String temp = "";
  153.                
  154.                 public void startDocument() {
  155.                     System.out.println( "Start document" );
  156.                 }
  157.                
  158.                 public void startElement(String uri,
  159.                         String localName, String qName,
  160.                         Attributes attributes) {
  161.                     System.out.println( "Start Element: " + qName );
  162.                     temp = "";
  163.                 }
  164.                
  165.                 public void characters(char[] ch, int start, int length) {
  166.                     String chars = new String(ch, start, length);
  167.                     temp += chars;
  168.                     System.out.println( "Characters: " + chars );
  169.                 }
  170.                
  171.                 public void endElement(String uri,
  172.                     String localName, String qName) {
  173.                     System.out.println( "End Element: " + qName );
  174.                 }
  175.             };
  176.  
  177.             File fXmlFile = new File(filename);
  178.             InputStream is = new FileInputStream( fXmlFile );
  179.            
  180.             saxParser.parse( is, handler );
  181.            
  182.             is.close();
  183.            
  184.         } catch (Exception e) {
  185.             System.out.println( e.getLocalizedMessage() );
  186.         }
  187.        
  188.     }
  189.  
  190.    
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement