loading ...
搜狐圈子 IT数码 web开发 浏览帖子

来自圈子:web开发 (41 人)

圈子描述:创造是一种乐趣
圈子标签:web 开发
web开发
副圈主:
共1页 | 上一页   1   下一页

将DOM树转换为XML文件 1/?

/*这个程序完成的功能是读取company.xml文件的内容,然后
 * 删除李四所对应的employee元素,再添加一个王五所对应的
 * employee元素,最后再写入到XML文件中
 */
package coresun.cn;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
public class DOMEmployee2 {
    public static void main(String[] args) {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        try {
            DocumentBuilder db = factory.newDocumentBuilder();
            //解析company.xml文件,并且获得文档节点
            Document document = db.parse(new File("company.xml"));
            //通过文档节点获得,获取根元素节点
            Element root = document.getDocumentElement();
            //获取employee节点的集合
            NodeList nl = root.getElementsByTagName("employee");
            root.removeChild(nl.item(1));
            //创建元素节点
            Element employeeElement = document.createElement("employee");
            Element nameElement = document.createElement("name");
            Element ageElement = document.createElement("age");
            Element salaryElement = document.createElement("salary");
            Element cashElement = document.createElement("cash");    
            //创建文本节点
            Text cashText = document.createTextNode("2500");
            Text ageText = document.createTextNode("23");
            Text nameText = document.createTextNode("王五");
            //添加子节点
            cashElement.appendChild(cashText);
            salaryElement.appendChild(cashElement);
            ageElement.appendChild(ageText);
            nameElement.appendChild(nameText);
            employeeElement.appendChild(nameElement);
            employeeElement.appendChild(ageElement);
            employeeElement.appendChild(salaryElement);
            root.appendChild(employeeElement);
            //将DOM树中的内容转换到文件中,用到JAXP中的转换API javax.xml.transform包
            //转换器的获得与解析器的获得比较类型,都是先获得工厂对象
            TransformerFactory tFactory = TransformerFactory.newInstance();
            Transformer tf = tFactory.newTransformer();
            //设置输出文件的编码
            tf.setOutputProperty("encoding", "gb2312");
            //设置输出源
            Source source = new DOMSource(document);
            //设置输出结果
            Result result = new StreamResult(new File("newCompany.xml"));
            tf.transform(source, result);
        } catch (ParserConfigurationException e) {
            e.printStackTrace();
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TransformerConfigurationException e) {
            e.printStackTrace();
        } catch (TransformerException e) {
            e.printStackTrace();
        }
    }
}

我是美丽签名档
作达人,拿大奖>> 分享 分享 | 引用 | 回复 | 发表时间:2007-12-18
  • 积分:55
  • 体力:?
  • 头衔:1级 试用期员工
  • 加为好友

1

勉强能看明白java.
我是美丽签名档学会轉身前,伱沒有看到我的淚水;只有我以往的微笑祝福你;轉身后,我只有自己去品嘗淚水的味道......
引用 | 回复 | 发表时间:2008-03-20
共1页 | 上一页   1   下一页