Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * 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<User> 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;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement