JDOM
所谓的JDOM=DOM的可修改性+SAX的文件读取性。JDOM本身是一个免费的开源组件,可以直接进行下载。JDOM是使用Java语言编写的用于读、写、操作XML的一套组件。可以直接从http://www.jdom.org/上下载JDOM的开发包。
利用JDOM写文件的代码如下所示:(WriteXML.java的内容)
packageorg.lxh.xml.jdom;
importjava.io.*;
importorg.jdom.*;
importorg.jdom.output.*;
publicclassWriterXMLthrowsException{
publicstaticvoidmain(Stringargs[]){
Elementaddresslist=newElement("addresslist");
Elementlinkman=newElement("linkman");
Elementname=newElement("name");
Elementemail=newElement("email");
Attributeid=newAttribute("id","lxh");
Documentdoc=newDocument(addresslist);//定义Document对象。
name.setText("李兴华");
name.setAttribute(id);//将属性设置到元素之中。
email.setText("mldnqa@163.com");
linkman.addContent(name);//设置关系。
linkman.addContent(email);
addresslist.addContent(linkman);
XMLOutputterout=newXMLOutputter();
out.setFormat(out.getFormat().setEncoding("GBK")); //表示的是设置编码。
out.output(doc,newFileOutputStream(new
File("D:"+File.separator+"address.xml")));
}
}
执行程序后,产生的address.xml中的内容如下所示:
利用JDOM读取文件的内容如下所示:(ReadXML.java)
packageorg.lxh.xml.jdom;
importjava.io.*;
importjava.util.*;
importorg.jdom.*;
importorg.jdom.input.*;
publicclassReadXML{
publicstaticvoidmain(Stringargs[])throwsException{
SAXBuilderbuilder=newSAXBuilder();
Documentread_doc=builder.build(newFile("D:"+File.separator+"address.xml"));
Elementroot=read_doc.getRootElment();//取得根
Listlist=root.getChildren("linkman");
for(intx=0;x<list.size();x++){
Elemente=(Element)list.get(x);
Stringname=e.getChildText("name");
Stringid=e.getChild("name").getAttribute("id").getValue();
Stringemail=e.getChildText("email");
System.out.println("-----------联系人-----------");
System.out.println("姓名:"+name+",编号:"+id);
System.out.println("EMAIL:"+email);
System.out.println("------------------------------");
System.out.priintln();
}
}
}
执行此段代码的结果如下所示:
小结:使用JDOM可以方便的实现XML文件的读取和输出。JDOM=SAX+DOM。
DOM4J
DOM4J也是一组XML操作的组件包,主要用来读写XML文件,由于DOM4J性能优异、功能强大、易用性等特点所以现在已经被广泛的应用开来,例如:Hibernate、Spring框架中都使用了DOM4J进行XML的解析操作,如果要想取得DOM4J的开发包,可以直接登录SourceForge的首页(http://sourceforge.net/projects/dom4j/files/)下载。
通过DOM4J生成XML文件。【首先将DOM4J的开发包配置到classpath之中。】
Document对象创建的时候使用DocumentHelper这个类来完成。
在Dom4J之中输出操作靠的是OutputFormat类来完成。
如果现在要想输出则可以使用XMLWriter。
DOM4JWriter.java的内容如下所示:
packageorg.skewrain.xml.dom4j;
importjava.io.*;
importorg.dom4j.*;
importorg.dom4j.io.*;
publicclassDOM4JWriter{
publicstaticvoidmain(Stringargs[])throwsException{
Documentdoc=DocumentHelper.createDocument();
Elementaddresslist=doc.addElement("addresslist");
Elementlinkman=addresslist.addElement("linkman");
Elementname=linkman.addElement("name");
Elementemail=linkman.addElement("email");
name.setText("李兴华");
email.setText("email");
OutputFormatformat=OutputFormat.createPrettyPrint();
format.setEncoding("GBK");
XMLWriterwirter=newXMLWriter(newFileOutputStream(newFile("d:"+File.separator+"address.xml") ),format);
writer.wirte(doc);//进行输出
writer.close();
}
}
packageorg.lxh.xml.dom4j;
importjava.io.*;
importjava.util.*;
importorg.dom4j.*;
importorg.dom4j.io.*;
publicclassDOM4JReader{
publicstaticvoidmain(Stringargs[])throwsException{
Filefile=newFile("d:"+File.separator+"output.xml");
SAXReaderreader=newSAXReader();
Documentdoc=reader.read(file);//读取XML文件
Elementroot=doc.getRootElement();//取得根节点
Iteratoriter=root.elementIterator();
while(iter.hasNext()){
Elementlinkman=(Element)iter.next();
System.out.println("姓名:"+linkman.elementText("name"));
System.out.println("邮箱:"+linkman.elementText("email"));
}
}
}
执行代码的结果如下所示:
原文链接:https://www.f2er.com/xml/299196.html