| « | November 2025 | » | | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 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>
|
|
|