一文读懂四种常见的XML解析技术

时间:2022-02-11 22:49:35

之前的文章我们讲解了《XML系列教程之Schema技术_上海尚学堂java培训技术干货》《XML的概念、特点与作用、XML申明_上海Java培训技术干货》,大家可以点击回顾一下之前将的技术,能更好地学习本内容。本文在此基础上再讲述XML的解析技术。(以上文字发表在我的上海尚学堂网站上,大家可以点击阅读更多Java、Python和大数据相关文章)

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

一文读懂四种常见的XML解析技术

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

二、Dom解析Xml(了解)

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

一文读懂四种常见的XML解析技术

2.1 Dom 解析主要对象

一文读懂四种常见的XML解析技术

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();
    }
}

结果
一文读懂四种常见的XML解析技术

三、Dom4J解析Xml(推荐)

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

一文读懂四种常见的XML解析技术

3.1 D

OM4J解析Xml步骤

一文读懂四种常见的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视频教程请联系留下扣扣薇芯等联系方式,稍后会发相关资料给您。