返回顶部

收藏

Java XML DOM解析范例代码

更多
import java.io.InputStream;  
import java.util.ArrayList;  
import java.util.List;  

import javax.xml.parsers.DocumentBuilder;  
import javax.xml.parsers.DocumentBuilderFactory;  

import org.w3c.dom.Document;  
import org.w3c.dom.Element;  
import org.w3c.dom.NodeList;  
import org.w3c.dom.Node;  

import com.xtlh.cn.entity.Book;  

public class DomParseService {  
    public List<Book> getBooks(InputStream inputStream) throws Exception{  
        List<Book> list = new ArrayList<Book>();  
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
        DocumentBuilder builder = factory.newDocumentBuilder();  
        Document document = builder.parse(inputStream);  
        Element element = document.getDocumentElement();  

        NodeList bookNodes = element.getElementsByTagName("book");  
        for(int i=0;i<bookNodes.getLength();i++){  
            Element bookElement = (Element) bookNodes.item(i);  
            Book book = new Book();  
            book.setId(Integer.parseInt(bookElement.getAttribute("id")));  
            NodeList childNodes = bookElement.getChildNodes();  
//          System.out.println("*****"+childNodes.getLength());  
            for(int j=0;j<childNodes.getLength();j++){  
                if(childNodes.item(j).getNodeType()==Node.ELEMENT_NODE){  
                    if("name".equals(childNodes.item(j).getNodeName())){  
                        book.setName(childNodes.item(j).getFirstChild().getNodeValue());  
                    }else if("price".equals(childNodes.item(j).getNodeName())){  
                        book.setPrice(Float.parseFloat(childNodes.item(j).getFirstChild().getNodeValue()));  
                    }  
                }  
            }//end for j  
            list.add(book);  
        }//end for i  
        return list;  
    }  
}  

public class Book {  
    private int id;  
    private String name;  
    private float price;  
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public float getPrice() {  
        return price;  
    }  
    public void setPrice(float price) {  
        this.price = price;  
    }  
    @Override 
    public String toString(){  
        return this.id+":"+this.name+":"+this.price;  
    }  
}  

public class ParseTest extends TestCase{  

    public void testDom() throws Exception{  
        InputStream input = this.getClass().getClassLoader().getResourceAsStream("book.xml");  
        DomParseService dom = new DomParseService();  
        List<Book> books = dom.getBooks(input);  
        for(Book book : books){  
            System.out.println(book.toString());  
        }  
    }  
}

                                xml文件描述:
 <?xml version="1.0" encoding="UTF-8"?> 
<books> 
<book id="12"> 
<name>thinking in java</name> 
<price>85.5</price> 
</book> 
<book id="15"> 
<name>Spring in Action</name>
 <price>39.0</price> 
</book> 
</books>

标签:xml,dom,dom解析,Java

收藏

0人收藏

支持

0

反对

0

发表评论