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

xml解析

慕仔4209126
关注TA
已关注
手记 304
粉丝 69
获赞 305

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年

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP