`
ab1830
  • 浏览: 24209 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

xml 操作

阅读更多

下面是对xml实现CRUD的实例

JaxpXMLUtil.java

package com.braden.util;

import java.io.File;
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.Node;
import org.w3c.dom.NodeList;

public class JaxpXMLUtil {
    String path 
= "";

    
public JaxpXMLUtil(String path) {
        
this.path = path;
    }

    
public Document getDocument() {
        DocumentBuilderFactory factory 
= DocumentBuilderFactory.newInstance();
        DocumentBuilder builder;
        Document document 
= null;
        
try {
            builder 
= factory.newDocumentBuilder();
            document 
= builder.parse(path);
        } 
catch (Exception e) {
            
throw new RuntimeException(e);
        }
        
return document;

    }

    
public boolean writeToXml(Document document, String path) {
        
boolean flag = false;
        TransformerFactory tFactory 
= TransformerFactory.newInstance();

        
try {
            Transformer tf 
= tFactory.newTransformer();
            
if (path != null && path != "") {
                tf.transform(
new DOMSource(document), new StreamResult(
                        
new File(path)));
                flag 
= true;
            } 
else {
                flag 
= false;
            }
        } 
catch (Exception e) {
            
throw new RuntimeException(e);
        }
        
return flag;
    }

    
public String getId() {
        Document document 
= this.getDocument();
        NodeList list 
= document.getDocumentElement().getChildNodes();
        
int id = 1;
        
if (list != null) {
            
int len = list.getLength();
            
for (int i = 0; i < len; i++) {
                Node node 
= list.item(i);
                
if (node.getNodeType()==Node.ELEMENT_NODE) {
                    id
++;
                }
            }
        }
        
return id+"";
    }
}

 

UserDaoImpl.java


package com.braden.impl; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import com.braden.dao.UserDao; import com.braden.domain.User; import com.braden.util.JaxpXMLUtil; public class UserDaoImpl implements UserDao {     JaxpXMLUtil util = null;     public UserDaoImpl() {         util = new JaxpXMLUtil("src/user.xml");     }     public boolean delete(String id) {         boolean flag = false;         Document document = util.getDocument();         NodeList user_list = document.getElementsByTagName("user");         for (int i = 0; i < user_list.getLength(); i++) {             Element e = (Element) user_list.item(i);             if (e.getAttribute("id").equals(id)) {                 Node node = user_list.item(i);                 e.getParentNode().removeChild(node);                 util.writeToXml(document, "src/user.xml");                 flag = true;             }         }         return flag;     }     public User find(String id) {         Document document = util.getDocument();         NodeList user_list = document.getElementsByTagName("user");         User user = null;         for (int i = 0; i < user_list.getLength(); i++) {             Element e = (Element) user_list.item(i);             if (e.getAttribute("id").equals(id)) {                 user = new User();                 Node addressNode = e.getElementsByTagName("address").item(0);                 Node bitthdayNode = e.getElementsByTagName("bitthday").item(0);                 Node genderNode = e.getElementsByTagName("gender").item(0);                 Node usernameNode = e.getElementsByTagName("username").item(0);                 Node passwordNode = e.getElementsByTagName("password").item(0);                 user.setAddress(addressNode.getTextContent());                 user.setBitthday(bitthdayNode.getTextContent());                 user.setGender(genderNode.getTextContent());                 user.setUsername(usernameNode.getTextContent());                 user.setPassword(passwordNode.getTextContent());                 break ;             }         }         return user;     }     public boolean update(String id, String updateitem, String updateinfo) {         boolean flag = false;         Document document = util.getDocument();         NodeList user_list = document.getElementsByTagName("user");         for (int i = 0; i < user_list.getLength(); i++) {             Element e = (Element) user_list.item(i);             if (e.getAttribute("id").equals(id)) {                 NodeList user_child_List = e.getChildNodes();                 for (int j = 0; j < user_child_List.getLength(); j++) {                     Node node_item = user_child_List.item(j);                     if (node_item.getNodeName().equals(updateitem)) {                         if (!node_item.getTextContent().equals(updateinfo)) {                             node_item.setTextContent(updateinfo);                             util.writeToXml(document, "src/user.xml");                             flag = true;                         }                     }                 }             }         }         return flag;     }     public boolean insert(User user) {         Document document = util.getDocument();         /* System.out.println(document.getDocumentURI()); */         Element node_user = document.createElement("user");         node_user.setAttribute("id", user.getId());         Element node_username = document.createElement("username");         node_username.setTextContent(user.getUsername());         Element node_id = document.createElement("id");         node_id.setTextContent(user.getId());         Element node_gender = document.createElement("gender");         node_gender.setTextContent(user.getGender());         Element node_password = document.createElement("password");         node_password.setTextContent(user.getPassword());         Element node_bitthday = document.createElement("bitthday");         node_bitthday.setTextContent(user.getBitthday());         Element node_address = document.createElement("address");         node_address.setTextContent(user.getAddress());         node_user.appendChild(node_username);         node_user.appendChild(node_bitthday);         node_user.appendChild(node_address);         node_user.appendChild(node_gender);         node_user.appendChild(node_password);         document.getDocumentElement().appendChild(node_user);         try {             util.writeToXml(document, "src/user.xml");             return true;         } catch (Exception e) {             throw new RuntimeException(e);         }     } }

UserDaoImplTest.java

package com.braden.junit; import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.xml.sax.SAXException; import com.braden.dao.UserDao; import com.braden.domain.User; import com.braden.impl.UserDaoImpl; import com.braden.util.JaxpXMLUtil; public class UserDaoImplTest {          static UserDao dao;     static JaxpXMLUtil util;     @BeforeClass     public static void setUpBeforeClass() throws Exception {         dao = new UserDaoImpl();         util = new JaxpXMLUtil("src/user.xml");     }     @AfterClass     public static void tearDownAfterClass() throws Exception {     }     @Before     public void setUp() throws Exception {              }     @After     public void tearDown() throws Exception {     }     @Test     public void testDelete() {                      if (dao.delete("2")) {                 System.out.println("删除成功");             } else {                 System.out.println("删除失败");             }      }     @Test     public void testFind() {         User user = dao.find("2");         if (user!=null) {             System.out.println(user.getPassword());         } else {             System.out.println("用户不存在");         }     }     @Test     public void testUpdate() {         if(dao.update("2""password","lina")) {             System.out.println("更新成功");         } else {             System.out.println("更新失败");         }     }     @Test     public void testInsert() throws SAXException, IOException, ParserConfigurationException {         String id =util.getId();         User user = new User();         user.setAddress("beijing"+id+"beijing");         user.setBitthday("1984-09-03");         user.setId(id);         user.setUsername("braden_"+id);         user.setGender("female");         user.setPassword("123456");         try {             dao.insert(user);             System.out.println("user" + user.getId()+"添加成功!");         } catch (Exception e) {             throw new RuntimeException(e);         }     } }

 

User.java


package com.braden.domain; public class User {     private String username;     private String id;     private String bitthday;     private String address;     private String gender;     private String password;     public User() {         super();     }     public User(String username, String id, String bitthday, String address,             String gender, String password) {         super();         this.username = username;         this.id = id;         this.bitthday = bitthday;         this.address = address;         this.gender = gender;         this.password = password;     }     public String getUsername() {         return username;     }     public void setUsername(String username) {         this.username = username;     }     public String getId() {         return id;     }     public void setId(String id) {         this.id = id;     }     public String getBitthday() {         return bitthday;     }     public void setBitthday(String bitthday) {         this.bitthday = bitthday;     }     public String getAddress() {         return address;     }     public void setAddress(String address) {         this.address = address;     }     public String getGender() {         return gender;     }     public void setGender(String gender) {         this.gender = gender;     }     public String getPassword() {         return password;     }     public void setPassword(String password) {         this.password = password;     }           }

得到的xml文件

<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- <!DOCTYPE user PUBLIC "//UNKNOWN/" "user.dtd"> --> <users> <user id="1"> <username>braden_1</username> <bitthday>1984-09-03</bitthday> <address>beijing1beijing</address> <gender>female</gender> <password>123456</password> </user> <user id="2"> <username>braden_2</username> <bitthday>1984-09-03</bitthday> <address>beijing2beijing</address> <gender>female</gender> <password>123456</password> </user> <user id="3"> <username>braden_3</username> <bitthday>1984-09-03</bitthday> <address>beijing3beijing</address> <gender>female</gender> <password>123456</password> </user> </users>
分享到:
评论

相关推荐

    xml操作xml操作xml操作xml操作xml操作

    xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作

    XML操作类XML操作类XML操作类

    XML操作类XML操作类XML操作类XML操作类XML操作类XML操作类XML操作类XML操作类

    基于QT封装的XML操作,显示类

    基于QT的QDomDocument封装的XML操作,显示类。使在QT中操作XML比较方便,快捷。如果觉得那里封装的不好,欢迎提出宝贵意见,建议,我再改正。

    动态生成Rss文件 Xml操作 Xml文件的修改

    动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件...

    c++的xml操作类

    tinyxml,很好用的xml操作类,c++版,删除了乱七八糟的工程文件,用时include一下两个头文件即可。具体使用方法参考:http://blog.csdn.net/zhangrentian/archive/2010/01/15/5194875.aspx

    XML操作类(完整)

    XML操作类(完整)使用于C#领域,更好的操作XML文件

    c# 下xml操作类

    c#下操作xml文件类,方便调用操作。 xml操作日趋常见,xml格式相对规范,通过xml存储信息更加方法,采用该类可以方便操作。

    简单实用的XML操作类

    简单实用的XML操作通用类,实现的功能包括创建XML文档、增加节点、删除节点和读取节点的值等。

    C# XML操作类库(加强版)

    最近做项目,要用C#写,而且数据格式是那种节点套节点能把人套死的XML,看着都觉得晕,而且节点跳跃性很大,真心觉得单纯用环境自带的XMLDocument类完全达不到自己的需要,因为XML里面涉及到节点循环,循环里面又套...

    java对xml操作的项目案例

    java对xml操作,包括各种读写,java对xml操作的项目案例

    Xml操作类(C#)

    Xml操作类,项目中使用的,包含读取数据、插入数据、修改数据、删除数据 附带使用方法。

    xml操作,内含源码

    初学者学习使用的xml操作,例子简单,容易上手

    xml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百味www.bywei.cn

    xml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百味www.bywei.cnxml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百味www.bywei.cnxml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百...

    xml操作类,xml操作类

    xml的所有操作.xml的所有操作.xml的所有操作.xml的所有操作.

    xml操作C#源码

    该代码主要实现了根据xml中定义的扩展字段Expand动态生成textbox,填写后更新xml的一个源码,包括xml的增删改查功能。算是比较全的一个xml操作源码了。主要是为了公司项目做的可行性研究,欢迎交流分享。

    asp.net 用xml操作word asp.net 用xml操作word

    asp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用...

    XML操作类 增删改查节点操作

    对xml操作的整理,包括增、删、改 、查方法操作

    vb6中xml 操作模块 完整代码.

    包含了常用的xml操作.并有详细说明.不需要在写任何代码.包含了xml的常用操作.代码中使用了xml4.0的库.需要自己手动添加.

    基于tinyxml2的xml操作库再封装

    对tinyxml2再封装,使使用更加便捷,方便。*******************************

    XMLHelper xml操作类 c#

    c# XMLHelper xml操作类

Global site tag (gtag.js) - Google Analytics