首页>JAVA>正文

四种常见的XML解析技术_上海Java培训干货

时间:2018-09-04 16:59:54   来源:上海尚学堂   阅读:
之前的文章我们讲解了《XML系列教程之Schema技术_上海尚学堂java培训技术干货》《XML的概念、特点与作用、XML申明_上海Java培训技术干货》,大家可以点击回顾一下之前将的技术,能更好地学习本内容。本文在此基础上再讲述XML的解析技术。

一、四种常见的XML解析技术




dom是解析xml的底层接口之一(另一种是sax)  ,而jdom和dom4j则是基于底层api的更高级封装  ,dom是通用的,而jdom和dom4j则是面向java语言的 。

二、Dom解析Xml(了解)

DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而 DOM 被认为是基于树或基于对象的。

 

2.1 Dom 解析主要对象



 

2.2 Dom 解析Xml步骤

l 创建解析器工厂对象
l 由解析器工厂对象创建解析器对象
l 由解析器对象对指定XML文件进行解析,构建相应DOM树,创建Document对象
l 以Document对象为起点对DOM树的节点进行增删改查操作使用
Api 文档参考地址:
http://www.w3school.com.cn/xmldom/index.asp

Dom解析解析学生成绩信息score.xml

"1.0" encoding="utf-8" ?>

    
        张三
        2018001
        0113
        
上海外国语

        123456
    

    
        王五
        2018002
        0114
        
上海外国语

        657432
    
 
/**
 * 解析xml文档
 * */
public static void parseXml(){
    try{
        //得到DOM解析器的工厂实例
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        //从DOM工厂中获得DOM解析器
        DocumentBuilder dbBuilder = dbFactory.newDocumentBuilder();
        //把要解析的xml文档读入DOM解析器
        Document doc = dbBuilder.parse("C:\\java\\idea_workspace_18\\freemarker01\\src\\main\\resources\\scores.xml");
        System.out.println("处理该文档的DomImplementation对象  = "+ doc.getImplementation());
        //得到文档名称为Student的元素的节点列表
        NodeList nList = doc.getElementsByTagName("Student");
        //遍历该集合,显示结合中的元素及其子元素的名字
        for(int i = 0; i< nList.getLength() ; i ++){
            Element node = (Element)nList.item(i);
            System.out.println("Name: "+ node.getElementsByTagName("Name").item(0).getFirstChild().getNodeValue());
            System.out.println("Num: "+ node.getElementsByTagName("Num").item(0).getFirstChild().getNodeValue());
            System.out.println("Classes: "+ node.getElementsByTagName("Classes").item(0).getFirstChild().getNodeValue());
            System.out.println("Address: "+ node.getElementsByTagName("Address").item(0).getFirstChild().getNodeValue());
            System.out.println("Tel: "+ node.getElementsByTagName("Tel").item(0).getFirstChild().getNodeValue());
        }
 
    }catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
}
 
结果
 

三、Dom4J解析Xml(推荐)

DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。
Api文档参考地址: https://dom4j.github.io/



3.1 D
OM4J解析Xml步骤

 
 

3.2 DOM4J 解析学生成绩信息 scores.xml

l 获得document 对象
SAXReader reader=new SAXReader();
Document document=reader.read(new File("input.xml"));
 
l 操作xml文档节点
Element rootElm=document.getRootElement();//获得根节点
Element memberElm=root.element(“member”); //获得子节点
String text=memberElm.getText();//获得节点文本
Element ageElm=newMemberElm.addElement(“age”);//添加子节点
ageElm.setText(“29”);//设置节点文本
parentElm.remove(childElm);//)删除某节点


这就是上海尚学堂Java培训的XML系列教程课件简约版,获取详细全套Java视频教程请联系客服小姐姐。
全程面授,注重实战化项目教学,课程紧扣最新技术,培养出满足企业需求的能熟练上手的Java开发人才。欢迎查看上海尚学堂师资和就业反馈,或者现场考察,免费试听。

分享:0

电话咨询

客服热线服务时间

周一至周五 9:00-21:00

周六至周日 9:00-18:00

咨询电话

021-67690939
15201841284

微信扫一扫