码迷,mamicode.com
首页 > 其他好文 > 详细

xml解析

时间:2018-04-16 12:11:26      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:xml解析

dom4j解析器
  • 1)CRUD的含义:CreateReadUpdateDelete增删查改
  • 2)XML解析器有二类,分别是DOM和SAX。
  • a)DOM一次性将整个XML文件读到内存,形成一个倒状的树形结构
  • b)SAX多次将整个XML文件读到内存
  • c)Document对象代表XML文件在内存中的映像
  • 3)常用的API如下:
    SAXReader saxReader = new SAXReader(); SAXReader是dom4j的核心类
    Document document = saxReader.read("*.xml")
    Document.getRootElement()
    Element.getName()
    Element.elements():取得该元素下的所有直接子元素
    Element.elementText():从一个元素导航到另一个元素且取出该元素的文本
    Element.element("车牌") :从一个元素导航到另一个元素
    Element.attributeValue("出产时间"):取得一个元素对应的属性
    Element.addElement("单价").setText("40"):添加新元素,同时设置该元素文本的值
    OutputFormat format = OutputFormat.createPrettyPrint():使用缩格形式写XML文件
    XMLWriter xmlWriter = new XMLWriter(os,format):构造XML写入器
    xmlWriter.write(document):将内存中的document对象写入硬盘
    firstCarElement.remove(firstCarPriceElement):从直接父元素删除直接子元素
    //firstCarPriceElement.getParent().remove(firstCarPriceElement):从直接父元素删除直接子元素

    car.xml
    `<?xml version="1.0" encoding="UTF-8"?>
    <车辆清单>
    <汽车>
    <车牌 出产时间="2010年">奥迪</车牌>
    <产地>北京</产地>
    <单价>30</单价>
    </汽车>
    <汽车>
    <车牌 出产时间="2011年">本田</车牌>
    <产地>广州</产地>
    <单价>60</单价>
    </汽车>
    </车辆清单>

`
读取:

package day2.domx;

import java.io.File;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

//使用dom4j解析xml文件
public class Dome1 {

    public static void main(String[] args) throws Exception {

        //创建dom4j解析器
        SAXReader saxReader = new SAXReader();
        //加载需要解析的xml文件
        Document document = saxReader.read(new File("src/day2/domx/car.xml"));

      //取得根元素
        Element rootElement = document.getRootElement();        
      //显示根元素的名称
        System.out.println(rootElement.getName());
        //取得根元素下的子元素
        List<Element> elementList = rootElement.elements();
        System.out.println("共有" + elementList.size()+"辆车");
        for(Element e:elementList)
        {
            System.out.println("车牌:" + e.elementText("车牌"));
            System.out.println("产地:" + e.elementText("产地"));
            System.out.println("出产时间:" + e.element("车牌").attributeValue("出产时间"));
            System.out.println("------------------------------");
        }

    }

}

结果:
车辆清单
共有2辆车
车牌:奥迪
产地:北京
出产时间:2010年

车牌:本田
产地:广州
出产时间:2011年

xml解析

标签:xml解析

原文地址:http://blog.51cto.com/357712148/2103872

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!