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