Chào các bạn! Truyen4U chính thức đã quay trở lại rồi đây!^^. Mong các bạn tiếp tục ủng hộ truy cập tên miền Truyen4U.Com này nhé! Mãi yêu... ♥

A003

XML NS  : <root xmlns:temp="http://www.6147.com.vn/contract">

BANKNS :

import java.util.ArrayList;

import java.util.Iterator;

import javax.xml.namespace.NamespaceContext;

public class BankNS implements NamespaceContext {

    public String getNamespaceURI(String prefix) {

        if (prefix.equals("temp")) {

            return "http://www.6147.com.vn/contract";

        }

        return "";

    }

    public String getPrefix(String namespaceURI) {

        if (namespaceURI.equals("http://www.6147.com.vn/contract")) {

            return "temp";

        }

        return "";

    }

    public Iterator getPrefixes(String namespaceURI) {

        ArrayList<String> prefixes = new ArrayList<String>();

        if (namespaceURI.equals("http://www.6147.com.vn/contract")) {

            prefixes.add("temp");

        }

        return prefixes.iterator();

    }

}

import java.io.File;

import java.util.Scanner;

import javax.xml.xpath.XPath;

import javax.xml.xpath.XPathConstants;

import javax.xml.xpath.XPathFactory;

import nu.xom.Document;

import nu.xom.Node;

import nu.xom.Nodes;

import nux.xom.pool.DocumentFactory;

import nux.xom.xquery.XQueryUtil;

import org.w3c.dom.NodeList;

import org.xml.sax.InputSource;

public class Main {

      public static void main(String[] args) {

        try {

            while (true) {

                int choose = menu();

                switch (choose) {

                    case 1:

                        printDetail();

                        break;

                    case 2:

                        searchEmployee();

                        break;

                    case 3:

                        counter();

                        break;

                    case 4:

                        System.exit(0);

                        break;

                    default:

                        System.out.println("Your choice is invalid. Please choose again !");

                }

            }

        } catch (Exception ex) {

            System.out.println(ex.getMessage());

        }

    }

    private static int menu() {

        Scanner input = new Scanner(System.in);

        int choose;

        System.out.println("****************** BANK SYSTEM ******************");        

        System.out.println("* 1. View detail employees.                     *");

        System.out.println("* 2. Search employee by id.                     *");

        System.out.println("* 3. Display employees works on contract basis. *");

        System.out.println("* 4. Exit                                       *");

        System.out.println("*************************************************");

        System.out.print("Choose: ");

        choose = input.nextInt();

        return choose;

    }

    private static void printDetail() throws Exception {

        try {

            InputSource src = new InputSource("src\\application3\\EmpDB.xml");

            XPathFactory factory = XPathFactory.newInstance();

            XPath xpath = factory.newXPath();

            xpath.setNamespaceContext(new BankNS());

            String expression = "//root/bank/employee";

            NodeList nodes = (NodeList) xpath.evaluate(expression, src, XPathConstants.NODESET);

            for (int i = 0; i < nodes.getLength(); i++) {

                System.out.println("\t" + nodes.item(i).getTextContent());

            }

        } catch (Exception ex) {

            throw ex;

        }

    }

    private static void searchEmployee() throws Exception {

        try {

            System.out.println("****************** Search Employee ******************");

            Scanner in = new Scanner(System.in);

            while (true) {

                System.out.print("Enter id employee: ");

                String id = in.nextLine();

                boolean flag = false;

                File f = new File("src\\application3\\EmpDB.xml");

                DocumentFactory domFac = new DocumentFactory();

                Document doc = domFac.createDocument(f);

                Nodes emp = XQueryUtil.xquery(doc, "//root/bank/employee[@id='" + id + "']");

                for (int i = 0; i < emp.size(); i++) {

                    flag = true;

                    Node node = emp.get(i);

                    System.out.println("Employee: " + (i + 1) + node.getValue());

                }

                if (!flag) {

                    System.out.println("Not Found !");

                }

                System.out.print("Do you want to continue? (Y/N): ");

                String answers = in.nextLine();

                if (!answers.equalsIgnoreCase("y")) {

                    break;

                }

            }

        } catch (Exception ex) {

            throw ex;

        }

    }

       private static void counter() throws Exception {

        try {

            InputSource src = new InputSource("src\\application3\\EmpDB.xml");

            XPathFactory factory = XPathFactory.newInstance();

            XPath xpath = factory.newXPath();

            xpath.setNamespaceContext(new BankNS());

            String expression = "//root/bank/employee[temp:department='Contract Basis']";

            NodeList nodes = (NodeList) xpath.evaluate(expression, src, XPathConstants.NODESET);

            System.out.println("List of employees work on constract basis: " + nodes.getLength());

            for (int i = 0; i < nodes.getLength(); i++) {

                System.out.println("\t" + nodes.item(i).getTextContent());

            }

        } catch (Exception ex) {

            throw ex;

        }

    }

}

Bạn đang đọc truyện trên: Truyen4U.Com

Tags: