java读取和写XML文档

上次因为觉的DWR好用,就写了个简易的聊天室,分别用DWR和prototype
来实现,因为为了方便移植,数据存放在XML文档中,读取和写入XML文档
的代码见下面........................

java bean:

 

package  com.lan.Forum;


public   class  Forumbean  {

    
private String username="";
    
private String content="";
    
private String datetime=null;
    
public String getContent() {
        
return content;
    }

    
public void setContent(String content) {
        
this.content = content;
    }

    
public String getDatetime() {
        
return datetime;
    }

    
public void setDatetime(String datetime) {
        
this.datetime = datetime;
    }

    
public String getUsername() {
        
return username;
    }

    
public void setUsername(String username) {
        
this.username = username;
    }

}

 

package  com.lan.Forum;

import  java.io.File;
import  java.io.FileInputStream;
import  java.text.DateFormat;
import  java.text.SimpleDateFormat;
import  java.util.ArrayList;
import  java.util.Date;

import  javax.servlet.Servlet;
import  javax.servlet.ServletConfig;
import  javax.servlet.ServletContext;
import  javax.servlet.ServletRequest;
import  javax.servlet.http.HttpServlet;
import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.jsp.PageContext;
import  javax.xml.parsers.DocumentBuilder;
import  javax.xml.parsers.DocumentBuilderFactory;
import  javax.xml.parsers.ParserConfigurationException;
import  javax.xml.transform.Transformer;
import  javax.xml.transform.TransformerConfigurationException;
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.NodeList;

public   class  Forum  {
    
    DocumentBuilderFactory dbf
=null;
    DocumentBuilder db
=null;
    Document doc
=null;
    String file
="d://Forum.xml";//XML文档的位置
    public Forum(){
    dbf
=DocumentBuilderFactory.newInstance();
    
try {
        db
=dbf.newDocumentBuilder();
        doc
=db.parse(new FileInputStream(file));
    }
 catch (Exception e) {
        
// TODO 自动生成 catch 块
        e.printStackTrace();
    }

    }

    
    
public void writexml(String username,String content){//写进XML
        Element forums;
        Element forum;
        Element name;
        Element con;
        Element date;
        forums
=(Element) doc.getElementsByTagName("Forums").item(0);//获得根接点
        forum=doc.createElement("Forum");//创建一个子接点元素
        name=doc.createElement("UserName");//创建一个元素
        name.appendChild(doc.createTextNode(username));//给元素赋值
        con=doc.createElement("Content");
        con.appendChild(doc.createTextNode(content));
        date
=doc.createElement("DateTime");
        date.appendChild(doc.createTextNode(
new Date().toString()));
        forum.appendChild(name);
//把元素附加给子接点
        forum.appendChild(con);
        forum.appendChild(date);
        forums.appendChild(forum);
//把字节点附加给根接点
        TransformerFactory tf=TransformerFactory.newInstance();
        
try {
            Transformer trans
=tf.newTransformer();
            trans.transform(
new DOMSource(doc),new StreamResult(new File(file)));
            
//经过转换工厂类来实现流的转换...
        }
 catch (Exception e) {
            
// TODO 自动生成 catch 块
            e.printStackTrace();
        }

        
    }

    
public ArrayList<Forumbean> getxml(){//从XML文档读值
        ArrayList<Forumbean> list=new ArrayList<Forumbean>();
        NodeList n1
=doc.getElementsByTagName("Forum");//获得字节点
        for(int i=0;i<n1.getLength();i++){
            Element n
=(Element) n1.item(i);
            NodeList u
=n.getElementsByTagName("UserName");//获得元素集合
            NodeList c=n.getElementsByTagName("Content");
            NodeList d
=n.getElementsByTagName("DateTime");
            String username
=u.item(0).getFirstChild().getNodeValue();
            String content
=c.item(0).getFirstChild().getNodeValue();
            String datetime
=d.item(0).getFirstChild().getNodeValue();
            Forumbean bean
=new Forumbean();
            bean.setUsername(username);
            bean.setContent(content);
            bean.setDatetime(datetime);
            list.add(bean);
        }

        
return list;
    }

    
}

XML文档

 

<? xml version="1.0" encoding="UTF-8" standalone="no" ?>
< Forums >
< Forum >
< UserName > lanzhengwu </ UserName >
< Content > Hello world </ Content >
< DateTime > 2007-11-18 </ DateTime >
</ Forum >
</ Forums >
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值