package com.citi.training.payee;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class XmlUtil {
private static String xmlPath;
public XmlUtil(){
xmlPath = "Payees.xml";
}
/**
* @return ArrayList<Payee>
* */
public static ArrayList<Payee> getAllPayee(){
Payee payee = null;
ArrayList<Payee> payees = new ArrayList<Payee>();
SAXReader reader = new SAXReader();
try {
Document document = reader.read(new File(xmlPath));
Element root = document.getRootElement();
List nodes = root.elements(); //nodes of all Payee
Element e; //node of one Payee
List sonNodes; //elements of one node
Element sonE; //one element if one node
for (Object element : nodes) {
List<String> tempList = new ArrayList<String>();
e = (Element) element;
sonNodes = e.elements();
for (int i = 0; i < sonNodes.size(); i++) {
sonE = (Element) sonNodes.get(i);
tempList.add(sonE.getTextTrim());
}
payee = new Payee(tempList.get(0),tempList.get(1),tempList.get(2));
// payee.setPayeeName(tempList.get(0));
// payee.setPayeeAccount(tempList.get(1));
// payee.setPayeeStatus(tempList.get(2));
payees.add(payee);
}
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
return payees;
}
/**
* @param String payeeAccount
* @return Payee
* */
public static Payee getPayeeByAccount(String payeeAccount){
Payee payee = null;
ArrayList<String> tempList = new ArrayList<String>();
SAXReader reader = new SAXReader();
try {
Document document = reader.read(new File(xmlPath));
Element root = document.getRootElement();
List nodes = root.elements();
Element e;
List sonNode;
Element sonE;
for (Object element : nodes) {
e = (Element) element;
if (e.element("payeeAccount").getText().equals(payeeAccount)) {
sonNode = e.elements();
for (Object sonElement : sonNode) {
sonE = (Element) sonElement;
tempList.add(sonE.getTextTrim());
}
payee = new Payee(tempList.get(0),tempList.get(1),tempList.get(2));
// payee.setPayeeName(tempList.get(0));
// payee.setPayeeAccount(tempList.get(1));
// payee.setPayeeStatus(tempList.get(2));
break;
}
}
} catch (DocumentException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return payee;
}
/**
* @param Payee payee
* edit
* set all items to a Payee
* */
public static void setPayee(Payee payee){
SAXReader reader = new SAXReader();
reader.setStripWhitespaceText(true);
try {
Document document = reader.read(new File(xmlPath));
Element root = document.getRootElement();
Element Account = root.addElement("Payee");
Element nameElement = Account.addElement("payeeName");
Element accountElement = Account.addElement("payeeAccount");
Element statusElement = Account.addElement("payeeStatus");
nameElement.setText(payee.getPayeeName());
accountElement.setText(payee.getPayeeAccount());
statusElement.setText(payee.getPayeeStatus());
FileWriter fw = new FileWriter(xmlPath);
XMLWriter writer = new XMLWriter(fw);
writer.write(document);
fw.close();
System.out.println("ADD NEW PAYEE: [" + payee.getPayeeName() + "]");
} catch (IOException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
XmlUtil xmlutil = new XmlUtil();
ArrayList<Payee> payees = new ArrayList<Payee>();
payees = getAllPayee();
Payee payee = getPayeeByAccount("6227002021490908014");
System.out.print(payee.getPayeeName() + "\t");
System.out.print(payee.getPayeeAccount() + "\t");
System.out.print(payee.getPayeeStatus() + "\t");
System.out.println();
setPayee(payee);
/*
for (Payee payee : payees) {
System.out.print(payee.getPayeeName() + "\t");
System.out.print(payee.getPayeeAccount() + "\t");
System.out.print(payee.getPayeeStatus() + "\t");
System.out.println();
}
*/
}
}
package com.citi.training.payee;
public class Payee {
private String payeeName;
private String payeeAccount;
private String payeeStatus;
public Payee(String payeeName,String payeeAccount,String payeeStatus){
this.payeeName = payeeName;
this.payeeAccount = payeeAccount;
this.payeeStatus = payeeStatus;
}
public String getPayeeName() {
return payeeName;
}
public void setPayeeName(String payeeName) {
this.payeeName = payeeName;
}
public String getPayeeAccount() {
return payeeAccount;
}
public void setPayeeAccount(String payeeAccount) {
this.payeeAccount = payeeAccount;
}
public String getPayeeStatus() {
return payeeStatus;
}
public void setPayeeStatus(String payeeStatus) {
this.payeeStatus = payeeStatus;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<Payees>
<Payee>
<payeeName>Zhou yi</payeeName>
<payeeAccount>6227002021490908111</payeeAccount>
<payeeStatus>locked</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou er</payeeName>
<payeeAccount>6227002021490908222</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou san</payeeName>
<payeeAccount>6227002021490908333</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou si</payeeName>
<payeeAccount>6227002021490908444</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou wu</payeeName>
<payeeAccount>6227002021490908555</payeeAccount>
<payeeStatus>locked</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou liu</payeeName>
<payeeAccount>6227002021490908666</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou qi</payeeName>
<payeeAccount>6227002021490908777</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou ba</payeeName>
<payeeAccount>6227002021490908888</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou jiu</payeeName>
<payeeAccount>6227002021490908999</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou shi</payeeName>
<payeeAccount>6227002021490908000</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou shiyi</payeeName>
<payeeAccount>6227002021490908001</payeeAccount>
<payeeStatus>locked</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou shier</payeeName>
<payeeAccount>6227002021490908002</payeeAccount>
<payeeStatus>locked</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou shisan</payeeName>
<payeeAccount>6227002021490908003</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou shisi</payeeName>
<payeeAccount>6227002021490908004</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou shiwu</payeeName>
<payeeAccount>6227002021490908005</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou shiliu</payeeName>
<payeeAccount>6227002021490908006</payeeAccount>
<payeeStatus>locked</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou shiqi</payeeName>
<payeeAccount>6227002021490908007</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou shiba</payeeName>
<payeeAccount>6227002021490908008</payeeAccount>
<payeeStatus>locked</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou shijiu</payeeName>
<payeeAccount>6227002021490908009</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou ershi</payeeName>
<payeeAccount>6227002021490908010</payeeAccount>
<payeeStatus>locked</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou eryi</payeeName>
<payeeAccount>6227002021490908012</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou ersan</payeeName>
<payeeAccount>6227002021490908013</payeeAccount>
<payeeStatus>locked</payeeStatus>
</Payee>
<Payee>
<payeeName>Zhou ersi</payeeName>
<payeeAccount>6227002021490908014</payeeAccount>
<payeeStatus>normal</payeeStatus>
</Payee>
<Payee><payeeName>Zhou ersi</payeeName><payeeAccount>6227002021490908014</payeeAccount><payeeStatus>normal</payeeStatus></Payee></Payees>
XML支付人数据操作
本文介绍了一个使用Java实现的XML文件读写工具类,用于管理支付人的基本信息,包括获取所有支付人列表、根据账户查找支付人及添加新的支付人。
9540

被折叠的 条评论
为什么被折叠?



