怎样用java在xml中插入数据啊?

zhhcn 2005-08-11 09:57:32
如题,用dom
...全文
271 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lydvqq 2005-08-12
  • 打赏
  • 举报
回复
import java.io.*;
import java.util.*;
import java.util.Date;
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;

class LogJdom
{
private static final String LOG = "log.xml";
private Element root = new Element("Log");
private Element user = new Element("user");
private Element log = new Element("log");
private Element time = new Element("time");
Document doc = new Document(root);
Format format = Format.getCompactFormat();
XMLOutputter XMLOut = null;

LogJdom() throws Exception //为了简单,没有处理异常
{
format.setEncoding("gbk");
format.setIndent(" ");
XMLOut = new XMLOutputter(format);
XMLOut.output(doc, new FileOutputStream(LOG));
}

public void addUserNode(String name) throws Exception
{
user =new Element("user");
user.setAttribute("name",name);
doc.getRootElement().addContent(user);
XMLOut.output(doc, new FileOutputStream(LOG));
}

public void addLog(String name,String alog) throws Exception
{
boolean hasnouser = true;
List list = doc.getRootElement().getChildren("user"); //得到所有子世节点
Element e = null;
for(int i=0;i<list.size();i++)
{
e = (Element)list.get(i);
if(e.getAttributeValue("name")==name)
{
hasnouser = false;
break;
}
}
if(hasnouser)
{
addUserNode(name);
addLog(name,alog);
}else
{
log = new Element("log");
log.setText(alog);
time = new Element("time");
time.setText(new Date().toString());
e.addContent(log);
e.addContent(time);
XMLOut.output(doc, new FileOutputStream(LOG));
}
}

public void delNode(String name) throws Exception
{
List list = doc.getRootElement().getChildren("user");
System.out.println("------"+list);
for(int i=0;i<list.size();i++)
{
Element e = (Element)list.get(i);
if(e.getAttributeValue("name")==name)
{
list.remove(i); //删除此节点!
}
}
XMLOut.output(doc, new FileOutputStream(LOG));
}

public void read() throws Exception
{
SAXBuilder builder = new SAXBuilder();
Document read_doc = builder.build(LOG);
Element Log = read_doc.getRootElement();
List list = Log.getChildren("user");

for(int i = 0;i < list.size();i++)
{
Element e = (Element)list.get(i);
System.out.println("user:"+e.getAttributeValue("name"));
String log = e.getChildText("log");
String time = e.getChildText("time");
System.out.println(" log:"+log);
System.out.println(" time:"+time);
}
}
}

public class TestJDom
{
public static void main(String[] args) throws Exception
{
LogJdom log = new LogJdom();
System.out.println("----------------------");
log.addUserNode("yidon");
log.addUserNode("andrwu");
log.addLog("yidon","two");
log.addLog("tom","leave the WWW!");
log.addLog("tom","leave the WWW!");
log.read();
log.addLog("tt","leave the WWW!");
log.delNode("tt"); //新增后又被删除就不会显示出来。
}
}

输出:

<?xml version="1.0" encoding="gbk"?>
<Log>
<user name="yidon">
<log>two</log>
<time>Wed Aug 10 23:09:04 CST 2005</time>
</user>
<user name="andrwu" />
<user name="tom">
<log>leave the WWW!</log>
<time>Wed Aug 10 23:09:04 CST 2005</time>
<log>leave the WWW!</log>
<time>Wed Aug 10 23:09:04 CST 2005</time>
</user>
</Log>
zez 2005-08-11
  • 打赏
  • 举报
回复
google搜索jdom

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧