XML

import java.io.IOException;

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 DocDemo {
    private Document document = null;
    public void getDocument() {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        try {
            DocumentBuilder builder = factory.newDocumentBuilder();
            document = builder.parse("收藏信息.xml");
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    
    public void show() {
        //找到所有的Brand
        NodeList nodeList = document.getElementsByTagName("Brand");
        //遍历每一个Brand
        for(int i = 0;i<nodeList.getLength();i++) {
            Node node = nodeList.item(i);
            //转成元素类型
            Element eleBrand = (Element)node;
            System.out.println("品牌"+eleBrand.getAttribute("name"));
            //找到当前Brand的所有子节点
            NodeList typeList = eleBrand.getChildNodes();
            //遍历每一个子节点
            for(int j = 0;j<typeList.getLength();j++) {
                Node typeNode = typeList.item(j);
                //因为Brand的子节点中可能有非元素点,比如属性节点、文本节点
                //所以要先判断该子节点是否是一个元素节点,如果是才能进行强转
                //typeNode.getNodeType()这个方法时获取当前节点的字节类型————元素节点、属性节点、文本节点
                if(typeNode.getNodeType() == Node.ELEMENT_NODE) {
                    //转换成元素对象
                    Element eleType = (Element)typeNode;
                    System.out.println("\t型号:"+eleType.getAttribute("name"));
                }
                
            }
        }
    }
    public static void main(String[] args) {
        DocDemo d = new DocDemo();
        d.getDocument();
        d.show();
    }
}

 

posted @ 2019-03-11 22:32  zxbaoer  阅读(130)  评论(0编辑  收藏  举报