手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

JDOM操作XML文件(法老修正版)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

xml.setbookname(book.getChild("书名").getText());
xml.setauthor(book.getChild("作者").getText());
xml.setpub(book.getChild("出版社").getText());
xml.setprice(book.getChild("价格").getText());
xml.setpubdate(book.getChild("出版日期").getText());
xmlVector.add(xml);
}
} catch (Exception e) {
System.err.println(e "error");
} finally {
try {
fi.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return xmlVector;
}

/**
* 删除XML文件指定信息
*/
public static void DelXML(HttpServletRequest request) throws Exception {
FileInputStream fi = null;
FileOutputStream fo = null;
try {
request.setCharacterEncoding("GBK");
String path = request.getParameter("path");
int xmlid = Integer.parseInt(request.getParameter("id"));
fi = new FileInputStream(path);
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); // 得到根元素
List books = root.getChildren(); // 得到根元素所有子元素的集合
books.remove(xmlid);// 删除指定位置的子元素
// String indent = " ";
// boolean newLines = true;
// XMLOutputter outp = new XMLOutputter(indent, newLines, "GBK");

Format format = Format.getPrettyFormat();
format.setIndent(" ");
format.setEncoding("utf-8");
XMLOutputter outp = new XMLOutputter(format);

fo = new FileOutputStream(path);
outp.output(doc, fo);
} catch (Exception e) {
System.err.println(e "error");
} finally {
try {
fi.close();
fo.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

/**
* 添加XML文件指定信息
*/
public static void AddXML(HttpServletRequest request) throws Exception {
FileInputStream fi = null;
FileOutputStream fo = null;
try {
request.setCharacterEncoding("GBK");
String path = request.getParameter("path");
fi = new FileInputStream(path);
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(fi);
Element root = doc.getRootElement(); // 得到根元素
List books = root.getChildren(); // 得到根元素所有子元素的集合
String bookname = request.getParameter("bookname");
String author = request.getParameter("author");
String price = request.getParameter("price");
String pub = request.getParameter("pub");
String pubdate = request.getParameter("pubdate");
// Text newtext;
Element newbook = new Element("书");
Element newname = new Element("书名");
newname.setText(bookname);
newbook.addContent(newname);
Element newauthor = new Element("作者");
newauthor.setText(author);
newbook.addContent(newauthor);
Element newpub = new Element("出版社");
newpub.setText(pub);
newbook.addContent(newpub);
Element newprice = new Element("价格");
newprice.setText(price);
newbook.addContent(newprice);
Element newdate = new Element("出版日期");
newdate.setText(pubdate);
newbook.addContent(newdate);
books.add(newbook);// 增加子元素
// String indent = " ";
// boolean newLines = true;
// XMLOutputter outp = new XMLOutputter(indent, newLines, "GBK");

Format format = Format.getPrettyFormat();
format.setIndent(" ");
format.setEncoding("utf-8");
XMLOutputter outp = new XMLOutputter(format);

fo = new FileOutputStream(path);
outp.output(doc, fo);
} catch (Exception e) {
System.err.println(e "error");
} finally {
try {
fi.close();
fo.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

/**
* 修改XML文件指定信息
*/
public static void EditXML(HttpServletRequest request) throws Exception {
FileInputStream fi = null;
FileOutputStream fo = null;
try {
request.setCharacterEncoding("GBK");
String path = request.getParameter("path");
int xmlid = Integer.parseInt(request.getParameter("id"));

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!