使用Dom生成xml文件和解析xml文件

xml这种文件格式在很多时候都是很适合我们用来存取数据的,所以利用程序来生成xml文件和解析xml文件就显得比较重要了。在dom中是把每一 个元素都看做是一个节点Node的,所有页面上的属性、元素等都是继承自Node的,所以当获取到的是一个Node,而你知道它实际的类型并需要使用的时 候就可能会需要进行类型转换了。

Element root = document.getDocumentElement();//获取根节点

下面是代码:

public void geneXmlByDom() throws Exception {
        //step1:获得一个DocumentBuilderFactory
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        //step2:获得一个DocumentBuilder
        DocumentBuilder db = factory.newDocumentBuilder();
        //step3:新建一个Document对象
        Document document = db.newDocument();
        //step4:创建一个根节点赛尔号里的丽莎布布配招
        Element rootElement = document.createElement("Persons");
        for (int i=0;i<5;i++) {
            //step5:创建一个节点
            Element person = document.createElement("person");
            //step6:为该节点设定属性
            person.setAttribute("id", "id_"+i);
            Element name = document.createElement("name");
            //为节点设定文本内容
            name.setTextContent("name_"+i);
            Element address = document.createElement("address");
            address.setTextContent("address_"+i);
            Element email = document.createElement("email");
            email.setTextContent("email_"+i);
            person.appendChild(name);
            person.appendChild(address);
            person.appendChild(email);
            //step7:为某一元素节点设立子节点
            rootElement.appendChild(person);
        }
        //step8:把刚刚建立的根节点添加到document对象中
        document.appendChild(rootElement);
        //step9:获得一个TransformerFactory对象
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        //step10:获得一个Transformer对象
        Transformer transformer = transformerFactory.newTransformer();
        //step11:把document对象用一个DOMSource对象包装起来
        Source xmlSource = new DOMSource(document);
        //step12:建立一个存储目标对象
        Result outputTarget = new StreamResult(new File("persons.xml"));
        //step13:生成相应的xml文件
        transformer.transform(xmlSource, outputTarget);
    }

posted @ 2011-06-10 09:38  ctou45  阅读(302)  评论(0编辑  收藏  举报