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

📄 wzxml.java

📁 基于eclipse|rcp的浏览器,另完成加入了收藏夹功能
💻 JAVA
字号:
package org.eclipse.rcp.browser;

import java.io.FileInputStream;
import java.io.FileOutputStream;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;


public class WzXml {
	private RootWjj rootWjj;

	private WjjEntity wjjEntity;

	private WzEntity wzEntity;

	// private List wjjEntiys;
	// private List wzEntitys;
	// private String RootName,wjjName,wzName,htt;
	//	
	//	
	// public String getRootName() {
	// return RootName;
	// }
	// public void setRootName(String rootName) {
	// RootName = rootName;
	// }
	// public String getHtt() {
	// return htt;
	// }
	// public void setHtt(String htt) {
	// this.htt = htt;
	// }
	//	
	// public String getWjjName() {
	// return wjjName;
	// }
	// public void setWjjName(String wjjName) {
	// this.wjjName = wjjName;
	// }
	// public String getWzName() {
	// return wzName;
	// }
	// public void setWzName(String wzName) {
	// this.wzName = wzName;
	// }
	public WzXml() {

	}

	public void LoadRootXML(String path) throws Exception {
		rootWjj = new RootWjj();
		// WzXml xml=new WzXml();
		FileInputStream fi = null;
		try {
			fi = new FileInputStream(path);
			SAXBuilder sb = new SAXBuilder();
			Document doc = sb.build(fi);
			Element root = doc.getRootElement(); // 得到根元素

			rootWjj.setName(root.getName());
			// xml.setRootName(root.getName());
			List wjjs = root.getChildren(); // 得到根元素所有子元素的集合
			List wzs = null;
			Element wjj = null;
			Element zhandian = null;
			// System.out.println(xml.getRootName());
			List wjjEntiys = new ArrayList();
			for (int i = 0; i < wjjs.size(); i++) {
				// System.out.println("............");
				wjj = (Element) wjjs.get(i); // 得到第一文件夹元素
				wjjEntity = new WjjEntity();
				wjjEntity.setName(wjj.getAttributeValue("name"));
				wzs = wjj.getChildren();
				// xml.setWjjName(wjj.getAttributeValue("name"));
				// System.out.println("文件夹:"+xml.getWjjName());
				List wzEntitys = new ArrayList();
				for (int j = 0; j < wzs.size(); j++) {
					zhandian = (Element) wzs.get(j);
					// xml.setWzName(zhandian.getAttributeValue("name"));
					// xml.setHtt(zhandian.getText());
					// System.out.println("站点名:"+xml.getWzName());
					// System.out.println("网站名:"+xml.getHtt());
					wzEntity = new WzEntity(zhandian.getAttributeValue("name"),
							zhandian.getText(),wjjEntity);
					wzEntitys.add(wzEntity);

				}
				wjjEntity.setChildren(wzEntitys);
				wjjEntiys.add(wjjEntity);

			}
			rootWjj.setChildren(wjjEntiys);
		} catch (Exception e) {
			System.err.println(e + "error");
		} finally {
			try {
				fi.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}

	}

	/**
	 * 查找XML文件里面的文件夹name项指定信息
	 */
	public static int FindWjjXml(String path, String name) {
		WzXml xml = new WzXml();
		try {
			xml.LoadRootXML(path);
		} catch (Exception e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		int i = 0;
		for (Iterator it = xml.rootWjj.getChildren().iterator(); it.hasNext(); i++) {
			WjjEntity wjjEntity = (WjjEntity) it.next();
			if (wjjEntity.getName().equals(name)) {
				return i;
			}
		}
		return -1;
	}

	/**
	 * 查找XML文件里面的站点name项指定信息
	 */
	public static int FindWzXml(String path, String name) {
		WzXml xml = new WzXml();
		try {
			xml.LoadRootXML(path);
		} catch (Exception e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		int i=0;
		int j = 0;
		for (Iterator it = xml.rootWjj.getChildren().iterator(); it.hasNext();i++) {
			WjjEntity wjjEntity = (WjjEntity) it.next();
			
			for (Iterator itt = wjjEntity.getChildren().iterator(); itt
					.hasNext(); j++) {
				WzEntity wzEntity = (WzEntity) itt.next();
				if (wzEntity.getName().equals(name)) {
					return j;
				}
			}
		}
		return -1;
	}
	/**
	 * 查找XML文件里面的站点name项指定信息的父级名字
	 */
	public static String FindFartherWzXml(String path, String name) {
		WzXml xml = new WzXml();
		try {
			xml.LoadRootXML(path);
		} catch (Exception e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}
		int i=0;
		int j = 0;
		for (Iterator it = xml.rootWjj.getChildren().iterator(); it.hasNext();i++) {
			WjjEntity wjjEntity = (WjjEntity) it.next();
			
			for (Iterator itt = wjjEntity.getChildren().iterator(); itt
					.hasNext(); j++) {
				WzEntity wzEntity = (WzEntity) itt.next();
				if (wzEntity.getName().equals(name)) {
					return wjjEntity.getName();
				}
			}
		}
		return "";
		
	}
	/**
	 * 添加XML文件文件夹项指定信息
	 */
	public static void AddWjjXML(String path,WjjEntity wjjEntity) 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 wjjs = root.getChildren(); // 得到根元素所有子元素的集合
			String name=wjjEntity.getName();
			
			Element wjj = new Element("文件夹");
					
			wjj.setAttribute(new Attribute("name",name));
			
			wjjs.add(wjj);// 增加子元素		
			
			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文件站点项指定信息
	 */
	public static void AddWzXML(String path,String wjjName,WzEntity wzEntity) 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 wjjs = root.getChildren(); // 得到根元素所有子元素的集合
			WzXml xml=new WzXml();
			xml.LoadRootXML(path);
			int findWjj=WzXml.FindWjjXml(path,wjjName);
			Element wjj=(Element) wjjs.get(findWjj);
			List wzs=wjj.getChildren();
			Element wz = new Element("站点");
					
			wz.setAttribute(new Attribute("name",wzEntity.getName()));
			wz.addContent(wzEntity.getPath());
			wzs.add(wz);// 增加子元素		
			
			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文件文件夹项指定信息
	 */
	public static void editWjjXML(String path,String wjjName,String newName) 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 wjjs = root.getChildren(); // 得到根元素所有子元素的集合
			WzXml xml=new WzXml();
			xml.LoadRootXML(path);
			int findWjj=WzXml.FindWjjXml(path,wjjName);			
			Element wjj = (Element) wjjs.get(findWjj);					
			wjj.setAttribute(new Attribute("name",newName));	
			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文件站点名wzName项修改为指定信息newWzEntity
	 */
	public static void editWzXML(String path,String wzName,WzEntity newWzEntity) 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 wjjs = root.getChildren(); // 得到根元素所有子元素的集合
			WzXml xml=new WzXml();
			xml.LoadRootXML(path);
			int findWjj=WzXml.FindWzXml(path,wzName);	
			List wzs=null;
			Element wjj=null;
			Element zhandian=null;
			//找到编号为findWjj的站点修改之
			int j=0;
			for(Iterator it=wjjs.iterator();it.hasNext();){	
				wjj=(Element) it.next();
				wzs=wjj.getChildren();
				for(Iterator itt=wzs.iterator();itt.hasNext();j++){
					zhandian=(Element) itt.next();
					if(j==findWjj){
						zhandian.setAttribute(new Attribute("name",newWzEntity.getName()));
						zhandian.setText(newWzEntity.getPath());
					}
				}
				
			}
			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文件文件夹项指定信息
	 */
	public static void delWjjXML(String path,String wjjName) 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 wjjs = root.getChildren(); // 得到根元素所有子元素的集合
			WzXml xml=new WzXml();
			xml.LoadRootXML(path);
			int findWjj=WzXml.FindWjjXml(path,wjjName);			
			wjjs.remove(findWjj);					
			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文件站点名wzName项指定信息
	 */
	public static void delWzXML(String path,String wzName) 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 wjjs = root.getChildren(); // 得到根元素所有子元素的集合
			WzXml xml=new WzXml();
			xml.LoadRootXML(path);
			int findWjj=WzXml.FindWzXml(path,wzName);	
			List wzs=null;
			Element wjj=null;
			Element zhandian=null;
			//找到编号为findWjj的站点修改之
			int j=0;
			for(Iterator it=wjjs.iterator();it.hasNext();){	
				wjj=(Element) it.next();
				wzs=wjj.getChildren();
				for(Iterator itt=wzs.iterator();itt.hasNext();j++){
					zhandian=(Element) itt.next();
					if(j==findWjj){
						wzs.remove(zhandian);	
						j++;//这里曾出现过删除bug.多删后面的一些项
						break;
					}					
				}				
			}
			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();
			}
		}
	}
	

	public RootWjj getRootWjj() {
		return rootWjj;
	}

	public void setRootWjj(RootWjj rootWjj) {
		this.rootWjj = rootWjj;
	}

	public WjjEntity getWjjEntity() {
		return wjjEntity;
	}

	public void setWjjEntity(WjjEntity wjjEntity) {
		this.wjjEntity = wjjEntity;
	}

	public WzEntity getWzEntity() {
		return wzEntity;
	}

	public void setWzEntity(WzEntity wzEntity) {
		this.wzEntity = wzEntity;
	}

//	public static void main(String[] args) {
//		String path = "./WWWroot.xml";
//		// 读出xml..........................
//		WzXml xml = new WzXml();
//		try {
//			xml.LoadRootXML(path);
//		} catch (Exception e) {
//			// TODO 自动生成 catch 块
//			e.printStackTrace();
//		}
//		// 用对象调试的方法
//		System.out.println("" + xml.rootWjj.getName());
//		for (Iterator it = xml.rootWjj.getChildren().iterator(); it.hasNext();) {
//			System.out.println("..................");
//			WjjEntity wjjEntity = (WjjEntity) it.next();
//			System.out.println("文件夹:" + wjjEntity.getName());
//			for (Iterator itt = wjjEntity.getChildren().iterator(); itt
//					.hasNext();) {
//				WzEntity wzEntity = (WzEntity) itt.next();
//				System.out.println("站点名:" + wzEntity.getName());
//				System.out.println("网站名:" + wzEntity.getPath());
//			}
//		}
		// 查找name为"Blog"的文件夹
//		String name = "Blog";
//		int findWjj = xml.FindWjjXml(path, name);
//		System.out.println(findWjj);
		//查找name为"陈勇的BLOG"网站
//		String name1="陈勇的BLOG";
//		int findWz=xml.FindWzXml(path,name1);
//		System.out.println(findWz);
		//增加一文件夹
//		WjjEntity wjjEntity=new WjjEntity();
//		
//		wjjEntity.setName("XML");
//		wjjEntity.setChildren(null);
//		try {
//			WzXml.AddWjjXML(path,wjjEntity);
//		
//		} catch (Exception e) {
//			// TODO 自动生成 catch 块
//			e.printStackTrace();
//		}
		//加一站点
//		String name2="娱乐";
//		WzEntity wzEntiry=new WzEntity("Flash3","http://www.flash3.com");
//		try {
//			WzXml.AddWzXML(path,name2,wzEntiry);
//		} catch (Exception e) {
//			// TODO 自动生成 catch 块
//			e.printStackTrace();
//		}
		//改一文件夹
//		String wjjName="XML";
//		String newName="修改";
//		try {
//			WzXml.editWjjXML(path,wjjName,newName);
//		} catch (Exception e) {
//			// TODO 自动生成 catch 块
//			e.printStackTrace();
//		}
		//修改一站点名及内容
//		String wzName="Flash";
//		WzEntity wz=new WzEntity("Flashbox","http://www.flashbox.com");
//		try {
//			WzXml.editWzXML(path,wzName,wz);
//		} catch (Exception e) {
//			// TODO 自动生成 catch 块
//			e.printStackTrace();
//		}
		//删除一文件夹及子项内容
//		String delName="XML";
//		try {
//			WzXml.delWjjXML(path,delName);
//		} catch (Exception e) {
//			// TODO 自动生成 catch 块
//			e.printStackTrace();
//		}
		//删除一站点内容
//		String delName="Flash1";
//		try {
//			WzXml.delWzXML(path,delName);
//		} catch (Exception e) {
//			// TODO 自动生成 catch 块
//			e.printStackTrace();
//		}
//	}

}

⌨️ 快捷键说明

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