`
chelsi916
  • 浏览: 5888 次
  • 性别: Icon_minigender_2
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论
阅读更多
package util;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;


import entity.Employee;

public class XmlUtilW {
			
	//读取xml里的emp所有数据
	public List<Employee> readXml() throws Exception{
		Document doc = getDocument();
		Element e = doc.getDocumentElement();
		List<Employee> list = new ArrayList<Employee>();
		NodeList nodelist = e.getElementsByTagName("emp");
		for(int i=0;i<nodelist.getLength();i++){
			 Node node = nodelist.item(i);
			 NodeList nodeList2 = node.getChildNodes();
			 Employee emp = new Employee();
			 for(int j=0;j<nodeList2.getLength();j++){
				 Node cn = nodeList2.item(j);
				 String nodestr = cn.getNodeName();
				 String tempstr = cn.getTextContent().trim();
				 if(nodestr.equals("id")){
					 emp.setId(Integer.parseInt(tempstr));
				 }
				 if(nodestr.equals("name")){
					 emp.setName(tempstr);
				 }
				 if(nodestr.equals("age")){
					 emp.setAge(Integer.parseInt(tempstr));
				 }
			 }
			 list.add(emp);
		}
		return list;
	}
	
	//增加一个emp
	public void writeXml(Employee emp) throws Exception{
		Document doc = getDocument();
		Element root = doc.getDocumentElement();
		Element empE = doc.createElement("emp");
		Element id = doc.createElement("id");
		id.setTextContent(emp.getId().toString());
		Element name = doc.createElement("name");
		name.setTextContent(emp.getName());
		Element age = doc.createElement("age");
		age.setTextContent(emp.getAge().toString());
		root.appendChild(empE);
		empE.appendChild(id);
		empE.appendChild(name);
		empE.appendChild(age);
		saveXml(doc);
	}
	
	//删除xml里的一条emp记录
	public void deleteXml(Integer id)throws Exception{
		Document doc = getDocument();
		Element e = doc.getDocumentElement();
		NodeList nodelist = e.getElementsByTagName("emp");
		for(int i=0;i<nodelist.getLength();i++){
			Node node = nodelist.item(i);
			NodeList cNL =node.getChildNodes();
			for(int j=0;j<cNL.getLength();j++){
				Node cn = cNL.item(j);
				String tempstr = cn.getTextContent().trim();
				if(tempstr.equals(id.toString())){
					cn.getParentNode().getParentNode().removeChild(node);
					break;
				}
			}
		}
		saveXml(doc);
	}
	
	//更新emp信息
	public void updateXml(Employee emp) throws Exception{
		Document doc = getDocument();
		Element e = doc.getDocumentElement();
		NodeList empsNodeList = e.getElementsByTagName("emp");
		for(int i=0;i<empsNodeList.getLength();i++){
			Node empNode = empsNodeList.item(i);
			NodeList empEleList = empNode.getChildNodes();
			for(int j=0;j<empEleList.getLength();j++){
				Node node = empEleList.item(j);
				String tempstr = node.getTextContent().trim();
				if(tempstr.equals(emp.getId().toString())){
					NodeList upEleList = empNode.getChildNodes();
					for(int k=0;k<upEleList.getLength();k++){
						Node upNode = upEleList.item(k);
						String nodestr = upNode.getNodeName();
						if(nodestr.equals("id")){
							upNode.setTextContent(emp.getId().toString());
						}
						if(nodestr.equals("age")){
							upNode.setTextContent(emp.getAge().toString());
						}
						if(nodestr.equals("name")){
							upNode.setTextContent(emp.getName());
						}
					}
				}
			}
			saveXml(doc);
		}
	}
	
//	根据id找到对应的emp
	public Employee findById(Integer id){
		try {
			List<Employee> emps = readXml();
			for (Employee employee : emps) {
				if(employee.getId() == id){
					return employee;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	
	//保存xml
	private void saveXml(Document document) throws Exception{
		 TransformerFactory tFactory = TransformerFactory.newInstance();// 创建XML输出工厂
		 Transformer transformer = tFactory.newTransformer();// 创建XML输出对象
		 DOMSource source = new DOMSource(document);// 源对象
		 String path = XmlUtilW.class.getClassLoader().getResource("employee.xml").getPath();
//		 String path = "D:/MyEclipse7/workspace/.metadata/.plugins/com.genuitec.eclipse.easie.tomcat.myeclipse/tomcat/webapps/webxml/WEB-INF/classes/employee.xml";
		 StreamResult result = new StreamResult(new File(path));// 目标对象
		 transformer.transform(source, result);
	}
	
	private Document getDocument() throws Exception {
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		factory.setIgnoringElementContentWhitespace(true);
		DocumentBuilder parser = factory.newDocumentBuilder();
		 String path=XmlUtilW.class.getClassLoader().getResource("employee.xml").getPath();
//		 System.out.println("getDocument:" + path);
		Document document = parser.parse(new File(path));
		return document;
	}
	
	
	public static void main(String[] args) throws Exception {
//		String path = XmlUtilW.class.getClassLoader().getResource("employee.xml").getPath();
		XmlUtilW xmlUtil = new XmlUtilW();
		
		//找出一个emp
//		Employee employee1 = xmlUtil.findById(1);
//		System.out.println(employee1.getId()+","+employee1.getName()+","+employee1.getAge());
//		System.out.println("---------");
		
//		读取xml的所有emp
//		List<Employee> emps = xmlUtil.readXml();
//		for (Employee employee : emps) {
//			System.out.println(employee.getId()+","+employee.getName()+","+employee.getAge());
//		}
			
//		删除一个emp
//		xmlUtil.deleteXml(3);
		
		
//		修改一个emp
//		xmlUtil.updateXml(emp);
		
		Employee emp = new Employee();
		emp.setId(4);
		emp.setAge(22);
		emp.setName("abc");
//		写入一个emp
		xmlUtil.writeXml(emp);
		
	}
}

 

分享到:
评论

相关推荐

    desktop and xmlutil

    - 如果XMLUtil是自定义的,那么它的具体功能和用法可能会根据开发者的需求而有所不同,例如处理特定的XML格式,或者优化性能。 4. **博文链接**: - 提供的博客链接(iteye.com)可能包含关于如何结合桌面应用与...

    XMLUtil.class

    Flex网上书店 运行时 的 XMLUtil.class

    XMLUtil java XML orm toolkit

    XMLUtil 是一个基于Java的XML对象关系映射(ORM)工具包,它的主要目标是简化XML数据与Java对象之间的交互。ORM技术的核心理念是通过映射机制将数据库中的数据自动转化为对象,反之亦然,而XMLUtil则是在XML文档与...

    XMLUtil.java

    XMLUtil.java,,这就是一小串代码,是一个配置文件,放在Java程序里面。

    xmlutil XMl工具类

    xml2bean

    Java操作XML工具类XmlUtil详解

    Java操作XML工具类XmlUtil详解 Java操作XML工具类XmlUtil是Java中一个非常重要的工具类,它提供了许多实用的方法来操作XML文件。在本文中,我们将详细介绍XmlUtil的使用方法和实现原理,希望能够为大家提供有价值的...

    XmlUtil.zip_Java编程_Java_

    本教程将深入探讨Java如何处理XML文件,以"XmlUtil.zip"中的"XmlUtil.java"为例,讲解相关的Java XML处理技术。 首先,Java提供了DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API ...

    C#常用基础工具类源码

    整理了几个在DotNet2.0中C#开发常用的基础工具类,内容如下:StringUtil、ParseUtil、TypeUtil、ByteUtil、NumUtil、XmlUtil、RegexUtil、HashUtil、ColorUtil。

    xmlutil:Kotlin的XML序列化库

    版本号执照: 核心: 序列化: Serialutil: 建立:介绍Gradle包装器验证: 该项目是与kotlin序列化兼容的跨平台XML序列化(包装)库。 它提供了针对Android,JVM和JS(Alpha质量)的功能它还提供序列化支持想要的...

    XPathUtil,根据Xpath解析xml文件

    根据xmlPath路径,找到对应的xml文件,进行解析!之前找了好多感觉和自己的需求不太一样,这个可以根据Xpath解析出来xml里所有的信息,十分好用 举个例子 xmlPath = "E://upload/xml/1580242.163.xml";...

    C#操作xml增删查改

    xmlUtil.XmlTagAddData("config","admin","test","23"); //删除admin下的test节点 xmlUtil.XmlTagDelete("config","admin/test"); //获取admin下test节点的值 xmlUtil.XmlGetTagData("config","admin/test"); ...

    XmlUtil.java

    Java开发中中经常使用的Java工具类分享,工作中用得上,直接拿来使用,不用重复造轮子。

    XMLUtil.txt

    微信JSAPI工具包

Global site tag (gtag.js) - Google Analytics