XML学习

XML概述

  • XML(eXtensible Markup Language),是一种可扩展的标记语言,类似HTML(超文本标记语言)。
  • XML技术是W3C组织(World Wide Web
    Consortium万维网联盟)发布的,目前遵循的是W3C组织于2000年发布的XML1.0规范。(XML从第一个版本发布之后,从来没有更新过,也不需要更新,完美)
  • XML是一种通用的数据交换格式(关系型数据库),许多系统的配置文件都使用XML格式,JSP文档也逐步向XML语法格式过渡,许多项目都采用XML作为数据交换格式(WebService),典型代表:WebService就是不同的项目,或者不同的语言交换数据的技术;
  • 在日常应用中会经常看见XML格式的文件,掌握XML是软件开发人员的一项基本技能,Struts1.x(不学,很少用),struts2.x,spring,hibernate,mybatis等任意一个javaee框架中都要用到XML。(必须通过XML去做配置)
  • 综上,XML可以传输数据,也可以存储数据

XML约束

XML约束的作用:规范XML中书写的内容
XML约束的分类:DTD约束、Schema约束

XML文件的解析

JAXP解析XML

获取Document

获取Document对象的代码实现步骤:

  1. 获取解析器工厂对象
  2. 解析器工厂对象创建解析器对象
  3. 解析器解析实体XML文件返回Document对象
    XML学习

查询

Element getDocumentElement() 获取根元素
NodeList getElementsByTagName(标签名称) 根据标签名称获取到节点集合
NodeList接口: Node item(下标索引)
Element接口: String getTextContent()
XML学习

修改

在XML解析的过程中,若对数据进行了修改操作,那么Java代码实际上只对内存中的这个对象进行了修改操作,要将最后的修改实际保存到文件中,还需要将当前内存中的数据输出保存到实际的XML,这个时候需要使用到Transformer类
Node接口:
void setTextContent(设置的值) 设置节点中的文本内容
TransformerFactory类:
TransformerFactory newInstance() 创建转换器新实例对象
Transformer newTransformer() 创建一个新的转换器
Transformer类:
void transformer(数据源,结果) 将内存中的DOM模型数据,写入实体文件中
DOMSource(内存的文档对象中)
StreamResult(实体文件关联)
XML学习

增加

Element接口:
Element createElement(标签名称) 创建一个新的标签
void appendChild(Element对象) 将一个标签添加到另一个标签中
void setAttribute(属性名,属性值) 给标签添加一个属性
String getAttribute(属性名) 根据属性名获取值
XML学习
XML学习

删除

注意:删除节点的时候,需要使用元素本身的父节点去删除
Node接口:
Node getParentNode() 获取父节点
void removeChild(Element对象) 删除子节点
XML学习

DOM4J解析XML

获取Document

Dom4j获取document对象采用的是dom4j的包
SAXReader类:
Document read(File类型) 获取一个Document对象
XML学习

查询

Document接口:
Element getRootElement() 获取文档中的根节点
Element接口:
Element element(标签名) 获取单个标签,返回子标签下的第一个
List elements(标签名) 获取多个标签,返回集合对象
String elementText(标签名) 返回标签中的文本数据
XML学习

修改

Document接口:
void write(Write类型) 将内存数据关联给一个字符输出流
Element接口:
void setText(设置值) 设定标签中的文本数据
XML学习

增加

Element接口:
Element addElement(标签名) 添加一个标签
XMLWriter类:格式友好的输出形式
XMLWriter(Writer writer,OutputFormat format) 构造一个具有良好输出格式的XML输出对象
void write(Node node) 将一个document输出到实体文件中
void close() 关闭输出
OutputFormat类:输出格式类
OutputFormat createPrettyPrint() 构造一个良好的格式对象

格式不友好
XML学习
格式友好
XML学习Element接口:
Element addAttribute(属性名,属性值) 添加一个属性
String attributeValue(属性名) 获取属性值
XML学习

删除

Element接口:
Element getParent() 获取父标签
Boolean remove(Element对象) 删除指定标签
XML学习