继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

XML之DOM4J方式读写文件

亚努人
关注TA
已关注
手记 20
粉丝 36
获赞 349

DOM4J性能优异,灵活性好,开源且功能强大,是较流行的一种XML读写方式。

1、DOM4J解析XML文件
1、创建SAXReader对象reader
2、通过reader的read方法加载XML文件,并获取document对象
3、通过document对象获取根节点
4、通过根节点获取迭代器,遍历迭代器

在遍历迭代器之中可以获得节点的属性名、属性值及子节点等相关内容,常用的方法如下:

1、book.attributes()  获取book节点的所有属性,保存在List<Attribute>集合中
2、attr.getName()  获取属性名或子节点名
3、attr.getValue()  获取属性值
4、bookChild.getStringValue()   获取子节点文本内容
    private void parseXML() throws Exception {
        // 创建SAXReader对象reader
        SAXReader reader = new SAXReader();
        // 通过reader的read方法加载xml文件,并获取document对象
        Document document = reader.read(new File("books.xml"));
        // 通过document对象获取根节点
        Element bookStore = document.getRootElement();
        // 获取迭代器
        Iterator it = bookStore.elementIterator();
        // 遍历迭代器,获取根节点中的信息
        while (it.hasNext()) {
            Element book = (Element) it.next(); // 返回的是Object类型,需要强制转换
            // 获取book的属性名和属性值
            List<Attribute> bookAttrs = book.attributes();
            for (Attribute attr : bookAttrs) {
                System.out.println("属性名:" + attr.getName() + " 属性值:" + attr.getValue());
            }
            // 对book中子节点进行遍历
            Iterator itt = book.elementIterator();
            while (itt.hasNext()) {
                Element bookChild = (Element) itt.next();
                System.out.println("子节点名:" + bookChild.getName() + "  子节点值:" + bookChild.getStringValue());
            }           
        }
    }
2、DOM4J生成XML文件
    private void createXML() throws Exception {
        //1、創建Document對象,代表整个XML文档
        Document document = DocumentHelper.createDocument();
        //2、添加根节点rss,并添加属性和属性值
        Element rss = document.addElement("rss");
        rss.addAttribute("version", "2.0");
        // 生成子节点及文本
        Element channel = rss.addElement("channel");
        Element title = channel.addElement("title");
        title.setText("国内最新新闻");
        //设置XML生成格式
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("UTF-8");
        //3、生成XML文件
        File file = new File("rssnews.xml");
        XMLWriter writer = new XMLWriter(new FileOutputStream(file),format);
        writer.setEscapeText(false);//设置特殊字符不转义,默认是转义的true
        writer.write(document);
        writer.close();
    }
打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP