Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới 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: Truyen247.Pro

Tags: