Posted on 2006-10-06 00:09
开关 阅读(412)
评论(1) 编辑 收藏 所属分类:
XML
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
public class CreateJdomXml {
String root="messages";
String child="message";
String[][] childitem={{"title","a"},{"content","aaa"},{"email","aaaaa"}};
/**
* @param args
*/
public CreateJdomXml(){
}
public static void main(String[] args) {
// TODO 自动生成方法存根
CreateJdomXml cj=new CreateJdomXml();
cj.deletexml();
}
public void createxml(){
Element roote=new Element(root);
Element childe=new Element(child);
childe.addAttribute("id", "A");
for(int i=0;i<childitem.length;i++){
Element childchild=new Element(childitem[i][0]);
childchild.setText(childitem[i][1]);
childe.addContent(childchild);
}
roote.addContent(childe);
Document doc=new Document(roote);
String newfile="D:/NewCearteExample.xml";
File file=new File(newfile);
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
OutputStream os=null;
try {
os=new FileOutputStream(file);
} catch (FileNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
XMLOutputter xop=new XMLOutputter();
xop.setEncoding("gb2312");
xop.setIndentSize(3);
xop.setNewlines(true);
xop.setSuppressDeclaration(false);
try {
xop.output(doc, os);
os.close();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public void updatexml(){
InputStream is=null;
OutputStream os=null;
String path="D:/NewCearteExample.xml";
File file=new File(path);
try {
is=new FileInputStream(file);
SAXBuilder builder=new SAXBuilder();
Document doc=builder.build(is);
Element root=doc.getRootElement();
List childrenlist=root.getChildren();
Element child=(Element)childrenlist.get(0);
Element childchild=new Element("desc");
childchild.setText("person");
child.addContent(childchild);
os=new FileOutputStream(file);
XMLOutputter xop=new XMLOutputter();
xop.setNewlines(true);
xop.setIndentSize(3);
xop.setEncoding("gb2312");
xop.output(doc,os);
os.close();
is.close();
} catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public void deletexml(){
InputStream is=null;
OutputStream os=null;
String path="D:/NewCearteExample.xml";
File file=new File(path);
try{
is=new FileInputStream(file);
SAXBuilder builder=new SAXBuilder();
Document doc=builder.build(is);
Element root=doc.getRootElement();
List childlist=root.getChildren();
Element child=(Element)childlist.get(0);
List childrenlist=child.getChildren();
for(int i=0;i<childrenlist.size();i++){
Element childchild=(Element)childrenlist.get(i);
if(childchild.getName().equalsIgnoreCase("desc")){
childrenlist.remove(i);
}
}
os=new FileOutputStream(file);
XMLOutputter xop=new XMLOutputter();
xop.setNewlines(true);
xop.setIndentSize(3);
xop.setEncoding("gb2312");
xop.output(doc,os);
os.close();
is.close();
}catch(Exception e)
{e.printStackTrace();
}
}
}