/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.me.chat; import java.io.IOException; import java.util.ArrayList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; /** * * @author Lahiru */ public class Parser { private static ArrayList userArrayList = new ArrayList<>(); private static String file = "E:\\ChatWebApp\\ChatWebApp\\users.xml"; public static void setFile(String file) { Parser.file = file; } public static String parseFile() { //TODO write your implementation code here: userArrayList.clear(); String r="ads" ; try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(file); NodeList userList = doc.getElementsByTagName("user"); String u = ""; String p = ""; for (int i = 0; i < userList.getLength(); i++) { Node userItem = userList.item(i); if (userItem.getNodeType() == Node.ELEMENT_NODE) { Element userElement = (Element) userItem; //name part NodeList nameList = userElement.getElementsByTagName("name"); Node nameItem = nameList.item(0); if (nameItem.getNodeType() == Node.ELEMENT_NODE) { Element nameElement = (Element) nameItem; u = nameElement.getTextContent(); } //pass part NodeList passList = userElement.getElementsByTagName("pass"); Node passItem = passList.item(0); if (nameItem.getNodeType() == Node.ELEMENT_NODE) { Element passElement = (Element) passItem; p = passElement.getTextContent(); } //User usr = ; r = i + u + p; userArrayList.add(new User(u, p)); //System.out.println(r); } } } catch (ParserConfigurationException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } catch (SAXException ex) { ex.printStackTrace(); } return r; } public static boolean validateUser(String name, String pass) { boolean login = false; parseFile(); for (User value : userArrayList) { if (value.getUsername().equals(name)) { login = value.getPassword().equals(pass); } } return login; } public static boolean writeFile(String username, String password) { boolean saved = false; try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); // root element Document doc = builder.parse(file); Element root = doc.getDocumentElement(); // user elements Element user = doc.createElement("user"); root.appendChild(user); //name elements Element name = doc.createElement("name"); name.appendChild(doc.createTextNode(username)); user.appendChild(name); //pass elements Element pass = doc.createElement("pass"); pass.appendChild(doc.createTextNode(password)); user.appendChild(pass); // write the content into xml file TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); DOMSource source = new DOMSource(doc); StreamResult result = new StreamResult(file); transformer.transform(source, result); saved = true; } catch (IOException ex) { ex.printStackTrace(); } catch (SAXException ex) { ex.printStackTrace(); } catch (ParserConfigurationException pce) { pce.printStackTrace(); } catch (TransformerException tfe) { tfe.printStackTrace(); } return saved; } }