java中四种操作xml方式的比较-JSP教程,Java与XML
<result>
??? <value>
????? <no>a1234</no>
???? <addr>四川省xx县xx镇xx路x段xx号</addr>
??? </value>
??? <value>
????? <no>b1234</no>
???? <addr>四川省xx市xx乡xx村xx组</addr>
??? </value>
</result>
1)dom
import java.io.*;
import java.util.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
public class myxmlreader{
public static void main(string arge[]){
long lasting =system.currenttimemillis();
try{?
file f=new file("data_10k.xml");
documentbuilderfactory factory=documentbuilderfactory.newinstance();
documentbuilder builder=factory.newdocumentbuilder();
document doc = builder.parse(f);
nodelist nl = doc.getelementsbytagname("value");
for (int i=0;i<nl.getlength();i++){
system.out.print("车牌号码:" + doc.getelementsbytagname("no").item(i).getfirstchild().getnodevalue());
system.out.println("车主地址:" + doc.getelementsbytagname("addr").item(i).getfirstchild().getnodevalue());
}
}catch(exception e){
e.printstacktrace();
}
2)sax
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;
public class myxmlreader extends defaulthandler {
java.util.stack tags = new java.util.stack();
public myxmlreader() {
super();
?? }
public static void main(string args[]) {
long lasting = system.currenttimemillis();
try {
saxparserfactory sf = saxparserfactory.newinstance();
saxparser sp = sf.newsaxparser();
myxmlreader reader = new myxmlreader();
sp.parse(new inputsource("data_10k.xml"), reader);
} catch (exception e) {
e.printstacktrace();
}
system.out.println("运行时间:" + (system.currenttimemillis() - lasting) + "毫秒");}
public void characters(char ch[], int start, int length) throws saxexception {
string tag = (string) tags.peek();
if (tag.equals("no")) {?
system.out.print("车牌号码:" + new string(ch, start, length));
??? }
??? if (tag.equals("addr")) {
system.out.println("地址:" + new string(ch, start, length));
??? }
?? }
public void startelement(string uri,string localname,string qname,attributes attrs) {
tags.push(qname);}
}?
3) jdom
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
public class myxmlreader {
public static void main(string arge[]) {
long lasting = system.currenttimemillis();
try {
saxbuilder builder = new saxbuilder();?
document doc = builder.build(new file("data_10k.xml"));?
element foo = doc.getrootelement();?
list allchildren = foo.getchildren();?
for(int i=0;i<allchildren.size();i++) {?
system.out.print("车牌号码:" + ((element)allchildren.get(i)).getchild("no").gettext());
system.out.println("车主地址:" + ((element)allchildren.get(i)).getchild("addr").gettext());
}
} catch (exception e) {
e.printstacktrace();
}
}
4)dom4j
import java.io.*;
import java.util.*;
import org.dom4j.*;
import org.dom4j.io.*;
public class myxmlreader {
public static void main(string arge[]) {
long lasting = system.currenttimemillis();
try {
file f = new file("data_10k.xml");
saxreader reader = new saxreader();
document doc = reader.read(f);
element root = doc.getrootelement();
element foo;
for (iterator i = root.elementiterator("value"); i.hasnext();) {
foo = (element) i.next();
system.out.print("车牌号码:" + foo.elementtext("no"));
system.out.println("车主地址:" + foo.elementtext("addr"));
}
} catch (exception e) {
e.printstacktrace();
??? }
}