本站首页    管理页面    写新日志    退出


«November 2025»
1
2345678
9101112131415
16171819202122
23242526272829
30


公告

 


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:22
评论数量:55
留言数量:0
访问次数:130288
建立时间:2006年3月13日




[xml]应用JDOM处理xml(实践)
软件技术

jjs_love 发表于 2006/5/23 10:48:09

package com.jdom;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.net.URL;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.JDOMException;import org.jdom.input.SAXBuilder;import org.jdom.output.XMLOutputter; import java.util.Date;import java.text.SimpleDateFormat; public class jdom {  private static  String xmlfile="com/jdom/bus.xml";  private static jdom xmlReadWrite = null;  private static Object obj=new Object(); public static jdom getInstance(){  if(xmlReadWrite==null){     synchronized(obj){      if(xmlReadWrite==null){       xmlReadWrite=new jdom();     }     }  }  return xmlReadWrite;     }         public String getRealPath(String path){     URL url = null;        try{            url  = this.getClass().getClassLoader().getResource(path);                  }        catch(Exception e){           System.out.print(e.getMessage());        }        return url.getFile();    }         public bus loadxml(String xmlfile,int id){      try{          SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");          bus a=new bus();          ArrayList list=new ArrayList();    SAXBuilder sb = new SAXBuilder(false);    Document doc=sb.build(xmlfile);    Element root=doc.getRootElement();    List book=root.getChildren();    for(int i=0;i<book.size();i++){     Element booka=(Element)book.get(i);      String ids=booka.getChild("id").getText();     if(ids.equals(String.valueOf(id))){         a.setName(booka.getChild("name").getText());      a.setAuthor(booka.getChild("author").getText());      String price=booka.getChild("price").getText();      a.setPrice(Double.valueOf(price));      String datePrice=booka.getChild("publishDate").getText();      Date start_date=sdf.parse(datePrice);      a.setPublishDate(start_date);          }         }       return a;      }catch(Exception e){     System.out.print(e.getMessage());  }      return null;           }       public Iterator  LoadXML(String xmlfile){     try{          SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");    ArrayList list=new ArrayList();    SAXBuilder sb = new SAXBuilder(false);    Document doc=sb.build(xmlfile);    Element root=doc.getRootElement();    List bus = root.getChildren();     for(int i=0;i<bus.size();i++){     bus a=new bus();     Element book=(Element)bus.get(i);      String id=book.getChild("id").getText();     a.setId(Long.parseLong(id));     a.setName(book.getChild("name").getText());     a.setAuthor(book.getChild("author").getText());     String price=book.getChild("price").getText();     a.setPrice(Double.valueOf(price));          String datePrice=book.getChild("publishDate").getText();     Date start_date=sdf.parse(datePrice);     //System.out.print(sdf.format(start_date));     a.setPublishDate(start_date);     list.add(a);    }    return list.iterator();      }catch(Exception e){     System.out.print(e.getMessage());  }      return null;    }        public void DelXML(String xmlfile,Long i){     try{          SAXBuilder sb = new SAXBuilder(false);   Document doc=sb.build(xmlfile);   Element root=doc.getRootElement();   List bus = root.getChildren();     bus.remove(1);       BufferedOutputStream out =new BufferedOutputStream(new FileOutputStream(xmlfile));    //XMLOutputter outputer = new XMLOutputter();     XMLOutputter outputer =new XMLOutputter(org.jdom.output.Format.getPrettyFormat());   outputer.output(root, out);      System.out.print("ok");   System.out.print("\n");     }catch(Exception e){      System.out.print(e.getMessage());     }    }        public void addXML(String xmlfile,bus b){  try{    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");    SAXBuilder sb = new SAXBuilder(false);    Document doc=sb.build(xmlfile);        Element root=doc.getRootElement();    Element book=new Element("book");    book.setAttribute("id","6");        Element id=new Element("id");    Element name=new Element("name");    Element author=new Element("author");    Element price=new Element("price");    Element publishDate=new Element("publishDate");        id.setText(String.valueOf(b.getId()));    name.setText(b.getName());    author.setText(b.getAuthor());    price.setText(String.valueOf(b.getPrice()));    publishDate.setText(sdf.format(b.getPublishDate()));        book.addContent(id);    book.addContent(name);    book.addContent(author);    book.addContent(price);    book.addContent(publishDate);        root.addContent(book);    BufferedOutputStream out =new BufferedOutputStream(new FileOutputStream(xmlfile));      XMLOutputter outputer =new XMLOutputter(org.jdom.output.Format.getPrettyFormat());        outputer.output(root, out);  }catch(Exception e){   System.out.print(e.getMessage());  }                    }        public void findXML(String xmlfile,Long id){  try{     SAXBuilder sb = new SAXBuilder(false);    Document doc=sb.build(xmlfile);    Element root=doc.getRootElement();    List books=root.getChildren();    for(int i=0;i<books.size();i++){     Element book=(Element)books.get(i);     Long idstr=Long.parseLong(book.getChild("id").getText());     if(idstr==id){           book.getChild("name").setText("fff");      System.out.print("ok");     }         }    BufferedOutputStream out =new BufferedOutputStream(new FileOutputStream(xmlfile));      XMLOutputter outputer =new XMLOutputter(org.jdom.output.Format.getPrettyFormat());        outputer.output(root, out);  }catch(Exception e){   System.out.print(e.getMessage());  }                    } public static void main(String[] args) {   Date today=new Date();   jdom jdoms=jdom.getInstance().getInstance();   SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");   String filepath=jdoms.getRealPath(xmlfile);   jdoms.findXML(filepath,2l);       Iterator it=jdoms.LoadXML(filepath);     while(it.hasNext()){    bus f=(bus)it.next();    System.out.print(f.getId()+" ");    System.out.print(f.getName()+" ");    System.out.print(f.getAuthor()+" ");    System.out.print(f.getPrice()+" ");    System.out.print(sdf.format(f.getPublishDate())+"\n");    System.out.print("\n");   } }  }   <?xml version="1.0" encoding="GBK"?>    <bookList>     <book id="3">         <id>1</id>   <name>Java编程入门</name>        <author>张三</author>         <publishDate>2006-5-22</publishDate>   <price>35.0</price>  </book>    <book id="4">    <id>2</id>      <name>XML在Java中的应用</name>     <author>李四</author>      <publishDate>2006-5-24</publishDate>      <price>92.0</price> </book> <book id="5">    <id>3</id>      <name>我的xml</name>     <author>暨景书</author>      <publishDate>2006-5-24</publishDate>      <price>92.0</price> </book> </bookList>    


阅读全文(1839) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144793107 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号