java 中的xml操作

时间:2020-10-21
本文章向大家介绍java 中的xml操作,主要包括java 中的xml操作使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

XML

全称为Extensible Markup Language 可扩展标记语言。一般作为配置文件,可在网络中传输。

和html的区别是,它的语法规定更加严格,同时,xml中的标签都是自定义的,而html中的标签是预定义的。

xml一般用来存储数据,而html一般用来展示数据。

xml文档的第一行必须为形如<?xml 属性列表 ?>的文档声明。必须要有一个根标签,标签必须正确关闭。同时和html不同xml的标签区分大小写。属性值必须使用单双引号包裹。

<?xml version="1.0" encoding="utf-8" standalone="no" ?>

一般xml文档声明格式如上,但是standalone一般不写,该属性的含义是是否依赖其他文件,取值只有yes/no。version属性表示采取的xml版本,常用的是1.0版本,encoding表示此文档内容采用的编码格式。

当需要原样展示数据时,可以将内容放到CDATA区中。

约束

约束定义了xml的书写规则。

通常有两种定义约束的方式:

  1. DTD 该方式使用较为简单
  2. Schema 该方式使用较为复杂,当约束更加详细

使用DTD约束有两种方式,一种时将约束规则定义在xml文档中。

另外一种时将DTD规则定义在外部的DTD文件中。

  1. 使用本地DTD规则 <!DOCTYPE 根标签名 SYSTEM "dtd文件位置">

  2. 使用网络DTD规则 <!DOCTYPE 根标签名 PUBLIC "dtd文件名" "dtd文件URL">

操作xml文档

操作xml文档,有两种行为:

  1. 解析 也就是将xml数据读入到内存

  2. 写入 也就是修改xml数据

xml解析方式

xml文档有两种解析方式:

  1. DOM 方式 将标记语言一次性加载新内存,在内存中形成一颗DOM树

    ​ 优点:操作方便,可以对文档进行crud的所有操作

    ​ 缺点:消耗内存

  2. SAX 逐行读取,基于事件驱动

    ​ 优点:内存消耗小

    ​ 缺点:只能读取,不能增删改

xml常见解析器

xml常见解析器有如下几种:

  1. JAXP:SUN公司提供的解析器,支持dom和sax两种实现 劣质

  2. DOM4J:

  3. jsoup:HTML解析器,解析xml无问题 推荐

  4. PULL:Android系统内置解析器,sax方式

Jsoup

本来是用来解析html文档的解析器,但是同为标记语言,解析xml也没有问题。

使用parse静态方法解析xml文档,返回一个Document对象。

Document对象

Document 文档对象,代表内存中的dom树 继承自Element。

Elements 对象

继承自ArrayList<Element> 类,相当于Element对象的容器。通常在选择某些节点是返回该对象。

Element 对象

该对象相当于一个标签节点。是一个较为基础的对象,Document类同样继承自该类。

常用函数函数有:

​ getElementsByTag 根据标签名称返回Elements

​ getElementsByAttribute 根据属性名称获取元素对象

​ getElementsByAttributeValue 根据属性值获取元素对象

​ attr 获取属性值

​ text 获取标签内的文本内容(包含子标签内的文本内容)

​ html 获取html/xml内容

Node对象

Node对象,为Element的基类

快捷选择方式

select CSS选择器方式

XPath xml路径语言,用于在xml中查询信息。

使用jsoupXpath需要额外的jar包

原文地址:https://www.cnblogs.com/freesfu/p/13855218.html