⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 40c2f52c650f001d1622ead12426ea11

📁 实训时做的物流系统
💻
字号:
package com.lib.biz;
/***********************
 * 
 * @author ZhanLiangfei
 * Jdom解析XML文件实现增删减查
 * 
 */
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Vector; 
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder; 
import org.jdom.output.XMLOutputter; 

import com.lib.cls.Server;
import com.mysql.jdbc.Field;

public class XMLOperate {
	
	private Vector vt;
	private static XMLOperate instance;
	public static XMLOperate getInstance(){
		if(instance==null){
			instance = new XMLOperate();
		}
		return instance;
	}

 /**
  * 读取XML文件所有信息
  */
 public Vector LoadXML(String path) throws Exception {
  Vector xmlVector = null;
  FileInputStream fi = null;
  try {
   fi = new FileInputStream(path);
   xmlVector = new Vector();
   SAXBuilder sb = new SAXBuilder();
   Document doc = sb.build(fi);
   Element root = doc.getRootElement(); // 得到根元素
   List servers = root.getChildren(); // 得到根元素所有子元素的集合
   Element server = null;
   Server xml = null;
   for (int i = 0; i < servers.size(); i++) {
    xml = new Server();
    server = (Element) servers.get(i); // 得到第1个服务器信息
    xml.setName(server.getChild("name").getText());
    xml.setAdd(server.getChild("add").getText());
    xml.setPort(Integer.parseInt(server.getChild("port").getText()));
    xml.setDatabase(server.getChild("database").getText());
    xml.setU(server.getChild("u").getText());
    xml.setP(server.getChild("p").getText());
    xml.setDt(server.getChild("dt").getText());
    xmlVector.add(xml);
   }
  } catch (Exception e) {
   System.err.println(e + "error");
  } finally {
   try {
    fi.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
  return xmlVector;
 } 

 /**
  * 删除XML文件指定信息
  */
 public static void DelXML(String path,String servername) throws Exception {
  FileInputStream fi = null;
  FileOutputStream fo = null;
  try {
   XMLOperate bean=new XMLOperate();
   int xmlid=bean.FindXml(path,servername); 
   fi = new FileInputStream(path);
   SAXBuilder sb = new SAXBuilder();
   Document doc = sb.build(fi);
   Element root = doc.getRootElement(); // 得到根元素
   List servers = root.getChildren(); // 得到根元素所有子元素的集合
   servers.remove(xmlid);// 删除指定位置的子元素
   XMLOutputter outp = new XMLOutputter();
   fo = new FileOutputStream(path);
   outp.output(doc, fo);
  } catch (Exception e) {
   System.err.println("查无此服务器,故不能完成删除");
  } finally {
   try {
    fi.close();
    fo.close();
   } catch (Exception e) {
    System.err.println("查无此服务器,故不能删除");
   }
  }
 } 

 /**
  * 添加XML文件指定信息
  */
 public static void AddXML(String path,Server server) throws Exception {
  FileInputStream fi = null;
  FileOutputStream fo = null;
  try {
   
   fi = new FileInputStream(path);
   SAXBuilder sb = new SAXBuilder();
   Document doc = sb.build(fi);
   Element root = doc.getRootElement(); // 得到根元素
   List servers = root.getChildren(); // 得到根元素所有子元素的集合
   String name = server.getName();
   String add = server.getAdd();
   String port = String.valueOf(server.getPort());
   String database = server.getDatabase();
   String u = server.getU();
   String p = server.getP();
   String dt = server.getDt();
   
   Element newserver = new Element("server");
   Element newname = new Element("name");
   newname.setText(name);
   newserver.addContent(newname);
   Element newadd = new Element("add");
   newadd.setText(add);
   newserver.addContent(newadd);
   Element newport = new Element("port");
   newport.setText(port);
   newserver.addContent(newport);
   Element newdatabase = new Element("database");
   newdatabase.setText(database);
   newserver.addContent(newdatabase);
   Element newdate = new Element("u");
   newdate.setText(u);
   newserver.addContent(newdate);
   Element newp = new Element("p");
   newdate.setText(p);
   newserver.addContent(newp);
   Element newdt = new Element("dt");
   newdate.setText(dt);
   newserver.addContent(newdt);
   servers.add(newserver);// 增加子元素  
   
   XMLOutputter outp = new XMLOutputter();
   fo = new FileOutputStream(path);
   outp.output(doc, fo);
  } catch (Exception e) {
   System.err.println(e + "error");
  } finally {
   try {
    fi.close();
    fo.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
 } 

 /**
  * 修改XML文件指定信息,对书名为pservername,修改为pBean的书对象
  */
 public static void EditXML(String path,String pservername,Server pserver) throws Exception {
  FileInputStream fi = null;
  FileOutputStream fo = null;
  try {
   XMLOperate bean=new XMLOperate();
   int xmlid=bean.FindXml(path,pservername);
   fi = new FileInputStream(path);
   SAXBuilder sb = new SAXBuilder();
   Document doc = sb.build(fi);
   Element root = doc.getRootElement(); // 得到根元素
   List servers = root.getChildren(); // 得到根元素所有子元素的集合
   Element server = (Element) servers.get(xmlid);
   String servername = pserver.getName();
   String add = pserver.getAdd();
   String database = pserver.getDatabase();
   String port = String.valueOf(pserver.getPort());
   String u = pserver.getU();
   String p = pserver.getP();
   String dt = pserver.getDt();
   
   Element newname = server.getChild("name");
   newname.setText(servername);// 修改书名为新的书名
   Element newadd = server.getChild("add");
   newadd.setText(add);
   Element newport = server.getChild("port");
   newport.setText(port);
   Element newdatabase = server.getChild("database");
   newdatabase.setText(database);
   Element newu = server.getChild("u");
   newu.setText(u);
   Element newp = server.getChild("p");
   newp.setText(p);
   Element newdt = server.getChild("dt");
   newdt.setText(dt);
   // servers.set(xmlid,server);//修改子元素
   
   XMLOutputter outp = new XMLOutputter();
   fo = new FileOutputStream(path);
   outp.output(doc, fo);
  } catch (Exception e) {
   System.err.println("查无此此服务器,故不能修改");
  } finally {
   try {
    fi.close();
    fo.close();
   } catch (Exception e) {
    System.err.println("查无此服务器,故不能修改");
   }
  }
 }
 /**
  * 查找XML文件指定信息
  */
 private int FindXml(String path,String servername){
  XMLOperate xml=new XMLOperate();
  Vector vt=null;
  try {
   vt=xml.LoadXML(path);
  } catch (Exception e) {
   // TODO 自动生成 catch 块
   e.printStackTrace();
  }
  int i=0;
  for(Iterator it=vt.iterator();it.hasNext();i++){
   Server bean=(Server)it.next();
   if(bean.getName().equals(servername)){
    return i;
   }
  }
  return -1;
 }
 
	public Vector getVector() {
		String path = "src/com/lib/data/libserver.xml";
		try {
			vt = getInstance().LoadXML(path);
		} catch (Exception e) {
			System.out.println(e);
		}
		return vt;
	}
	
 public static void main(String[] args) {
	 String path="../data/libserver.xml";
	 Server server = new Server();
	  Vector vt=null;
	  try {
	   vt=XMLOperate.getInstance().LoadXML(path);
	  } catch (Exception e) {
	   e.printStackTrace();
	  }
	  for(int i=0;i<vt.size();i++){
	   server=(Server)vt.elementAt(i);
	   System.out.println("服务器名:"+server.getName());
	   System.out.println("服务器地址:"+server.getAdd());
	   System.out.println("....................");
	  }
//	  Server xmlAdd=new Server();
//	  xmlAdd.setName("香港中文大学");
//	  xmlAdd.setAdd("192.168.8.88");
//	  xmlAdd.setPort(210);
//	  xmlAdd.setU("sa");
//	  xmlAdd.setP("123");
//	  try {
//	   XMLOperate.getInstance().AddXML(path,xmlAdd);
//	  } catch (Exception e) {
//	   // TODO 自动生成 catch 块
//	   e.printStackTrace();
//	  }}
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -