用java解析xml文档,最常用的有两种方法:使用基于事件的xml简单api (simple api for xml)称为sax和基于树和节点的文档对象模型(document object module)称为dom。
sun公司提供了java api for xml parsing(jaxp)接口来使用sax和dom,通过jaxp,我们可以使用任何与jaxp兼容的xml解析器。 jaxp接口包含了三个包:
org.w3c.dom w3c推荐的用于xml标准规划文档对象模型的接口。
org.xml.sax用于对xml进行语法分析的事件驱动的xml简单api(sax)
javax.xml.parsers解析器工厂工具,程序员获得并配置特殊的特殊语法分析器。
java xml parser
import java.io.fileinputstream;
import java.io.filenotfoundexception;
import java.io.ioexception;
import java.io.inputstream;
import javax.xml.parsers.documentbuilder;
import javax.xml.parsers.documentbuilderfactory;
import javax.xml.parsers.parserconfigurationexception;
import org.w3c.dom.document;
import org.w3c.dom.element;
import org.w3c.dom.node;
import org.w3c.dom.nodelist;
import org.xml.sax.saxexception;
public class domparse {
public domparse(){
documentbuilderfactory domfac=documentbuilderfactory.newinstance();
try {
documentbuilder dombuilder=domfac.newdocumentbuilder();
inputstream is=new fileinputstream("webroot/web-inf/hell.xml");
document doc=dombuilder.parse(is);
element root=doc.getdocumentelement();
nodelist books=root.getchildnodes();
if(books!=null){
for(int i=0;i<books.getlength();i++){
node book=books.item(i);
if(book.getnodetype()==node.element_node){
string email=book.getattributes().getnameditem("email").getnodevalue();
system.out.println(email);
for(node node=book.getfirstchild();node!=null;node=node.getnextsibling()){
if(node.getnodetype()==node.element_node){
if(node.getnodename().equals("name")){
string name=node.getnodevalue();
string name1=node.getfirstchild().getnodevalue();
system.out.println(name);
system.out.println(name1);
}
if(node.getnodename().equals("price")){
string price=node.getfirstchild().getnodevalue();
system.out.println(price);
}
}
}
}
}
}
} catch (parserconfigurationexception e) {
e.printstacktrace();
} catch (filenotfoundexception e) {
e.printstacktrace();
} catch (saxexception e) {
e.printstacktrace();
} catch (ioexception e) {
e.printstacktrace();
}
}
public static void main(string[] args)
{
new domparse();
}
}
以上就是用java解析xml文件的代码示例的详细内容。