用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文件的代码示例的详细内容。
   
 
   