XML

XML支付人数据操作
本文介绍了一个使用Java实现的XML文件读写工具类,用于管理支付人的基本信息,包括获取所有支付人列表、根据账户查找支付人及添加新的支付人。

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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值