当前位置: 移动技术网 > IT编程>开发语言>Java > Java:DocumentBuilderFactory调用XML的方法实例

Java:DocumentBuilderFactory调用XML的方法实例

2019年07月22日  | 移动技术网IT编程  | 我要评论
首先得到:得到 dom 解析器的工厂实例      documentbuilderfactory domfac=docum

首先得到:得到 dom 解析器的工厂实例      documentbuilderfactory domfac=documentbuilderfactory.newinstance();

然后从 dom 工厂获得 dom 解析器

 documentbuilder dombuilder=domfac.newdocumentbuilder();

 

)把要解析的 xml 文档转化为输入流,以便 dom 解析器解析它

inputstream is= new  fileinputstream("test1.xml");        

( 4 )解析 xml 文档的输入流,得到一个 document

 document doc=dombuilder.parse(is);

( 5 )得到 xml 文档的根节点

element root=doc.getdocumentelement();

( 6 )得到节点的子节点

  nodelist books=root.getchildnodes();

复制代码 代码如下:

package com.st.demo;  

import java.io.file;  
import java.io.fileinputstream;  
import java.io.inputstream;  

import javax.xml.parsers.documentbuilder;  
import javax.xml.parsers.documentbuilderfactory;  

import org.w3c.dom.document;  
import org.w3c.dom.element;  
import org.w3c.dom.node;  
import org.w3c.dom.nodelist;  

public class xmlreader {  
    public static void main(string[] args) {  
        xmlreader reader = new xmlreader();  
    }  
    public xmlreader(){  
        documentbuilderfactory domfac = documentbuilderfactory.newinstance();  
        try {  
            documentbuilder dombuilder = domfac.newdocumentbuilder();  
            inputstream is = new fileinputstream(new file("d:/test1.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) {  
                            //(7)取得节点的属性值  
                            string email=book.getattributes().getnameditem("email").getnodevalue();  
                            system.out.println(email);  
                            //注意,节点的属性也是它的子节点。它的节点类型也是node.element_node  
                            //(8)轮循子节点  
                            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 (exception e) {  
            // todo auto-generated catch block  
            e.printstacktrace();  
        }  

    }  

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网