xml 解析方式有两种: dom 解析和 sax 解析;

针对着两种解析方式,有三种解析器:

sun公司的 jaxp
dom4j 组织的 dom4j
jdom 组织的 jdom

dom 解析XML :

缺点:文件全部加载进内存,容易造成内存溢出
优点:很容易进行增删改操作

----------------------------------jaxp 解析xml---------------------------------

jaxp 解析器在 jdk的 javax.xml.parsers 包中;

针对dom 解析提供的类 :

1.DocumentBuilder   :解析器类
  是一个抽象类 :通过 DocumentBuilderFactory.newDocumentBuilder() 方法获取
2.DocumentBuilderFactory: 解析器工厂
  是一个抽象类 :通过newInstance() 获取实例

获取上下文Document 对象:

     //obtain 工厂对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//obtain DocumentBuilder via DocumentBuilderFactory
DocumentBuilder docBuilder = factory.newDocumentBuilder();
File file = ResourceUtils.getFile("springTest/beandefiniition.xml");
    //可以是一个XML文件,也可以是一个输入流
Document parse = docBuilder.parse(file);

查找元素:(与js 差不多,不进行举例)

NodeList elementsByTagName = parse.getElementsByTagName("bean");

----------------xpath 的使用--

Xpath 是用来方便我们快速找到我们需要节点的超便捷工具,如何定义呢创建一个Xpath 对象呢?

 XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPath返回的数据类型:
 

那么怎么利用Xpath 去定位我们的元素呢?

  方法: Object evaluate(String expression, Object item, QName returnType);

      expression:表达式;

      item:开始的上下文,可以说document ,也可以说一个Node

      returnType:返回的数据类型;参考上面的图片

/元素    -> 绝对路径去查找元素 (是以层级关系去找)

 Node evaluate = (Node)xpath.evaluate("/mapper", document,XPathConstants.NODE);

//元素  -> 满足//之后的规则的元素,无论层级关系

NodeList nodeList = (NodeList) xpath.evaluate("//select",document, XPathConstants.NODESET);

元素|元素|元素   -> 查找匹配的元素

NodeList nodeList= (NodeList) xpath.evaluate("select|insert|update|delete",document, XPathConstants.NODESET);

XML 解析技术的更多相关文章

  1. xml解析技术

    本文总结Dom,sax解析,  使用Java作为工具解析xml文档. 1 Dom 综述:Dom解析xml通常也称为xmlDom (和htmlDom技术差不多),将xml文档封装成树,好处就是xml中的 ...

  2. Android实现XML解析技术

    转载:Android实现XML解析技术 本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为 ...

  3. XML解析技术研究(一)

      摘要:XML作为过去十年中出现的最流行的技术之一,得到了广泛的应用,而其中XML解析技术是XML应用的关键.本文介绍了XML解析技术的研究动向,分析和比较了4种XML解析技术的优劣,并归纳总结了应 ...

  4. Java数据库编程、XML解析技术

    数据库编程 JDBC概述 是Java Database Connecive,即数据库连接技术的简称,它提供了连接各种常用数据库的能力. 是一种用于执行SQL语句的Java API,可以为多种关系数据库 ...

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

    之前的文章我们讲解了<XML系列教程之Schema技术_上海尚学堂java培训技术干货><XML的概念.特点与作用.XML申明_上海Java培训技术干货>,大家可以点击回顾一下 ...

  6. Java数据库编程及Java XML解析技术

    1.JDBC概述 A.  什么是JDBC? Java DataBase Connectivity:是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成.通过这些类和接口 ...

  7. XML解析技术简介——(一)

  8. JAVA数据库编程、JAVA XML解析技术

    JDBC概述 JDBC是JAVA中提供的数据库编程API curd :数据库增删改 链接字符串:String url = "mysql :/localhost :3306/jdbc/&quo ...

  9. XML解析技术-dom4j

随机推荐

  1. AS_简单的开始

    1.注释   单行注释  //           多行注释  /* src */ 2.变量   变量名,可以包含字母.数字.下划线.$.但不以数字开头.   变量类型,是严格数据类型.AS有静态类型 ...

  2. Web安全颜色

    Web安全色产生的原因 不同的平台(Mac.PC等)有不同的调色板,不同的浏览器也有自己的调色板.这就意味着对于一幅图,显示在Mac上的Web浏览器中的图像,与它在PC上相同浏览器中显示的效果可能差别 ...

  3. 剑指OFFER例题——从尾到头打印链表

    /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val ...

  4. 虚拟机安装VMware tools

    选择虚拟机菜单栏--安装VMware tools 2 然后在CentOS系统中弹出的VMware tools窗口中 右击VMwaretools-9.6.0-1294478.tar.gz 解压缩到 3 ...

  5. [Linux]CentOS7搭建Nginx + MySQL + PHP

    ------------------------------------------------------------------------------------- Nginx安装参考地址:ht ...

  6. KVM虚拟化技术(二)KVM介绍

    KVM:Kernel Virtual Machine KVM是基于虚拟化扩展的x86硬件,是Linux完全原生的全虚拟化解决方案.部分半虚拟化支持,主要是通过半虚拟网络驱动程序的形式用于Linux和W ...

  7. 重装unbantu 问题集合,下载别人的代码运行问题集合

    安装angular 的时候要全局设置 npm install -g angular-cli nodemon server.js 出现[nodemon] Internal watch failed:xx ...

  8. swift 获取Documnets 的路径 和 CGD 延迟

    // CGD 延迟 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64( * NSEC_PER_SEC)), dispatch_get_main ...

  9. GankApp 侧滑和title修改颜色的完整项目app

    GankApp 侧滑和title修改颜色的完整项目app GankApp 侧滑和title修改颜色的完整项目app,本项目主要由侧滑框架和4.4以及以上的头部title颜色调整和, 首页viewpag ...

  10. 学习JS的心路历程-参数的传递(下)

    今天我们要来探讨JS到底是透过何种参数传递方式呢? 废话不多说,上示例!! 我们先声明原始型别和物件型别来看看两者是否会有不一样的差异: var myStr = 'Hola': var myObj = ...