- xml
- 概念:一种可扩展的标记语言,格式严禁。用于数据的传输与存储,区别于HTML(用于数据显示)
- XML标签没有被预定义,需要用户自行定义标签。
- 特点:
(1) 有开始必须有结束
(2) 不允许交叉嵌套
(3) 有且只有一个跟标签
(4) 特殊符号的转译<![CDATA[要转译的内容]]>
(5) 文档声明必须在第一行
(6) 同一个标签中属性名不能相同;但是一个标签可以有多个同名的子标签 - xml约束:dtd约束、schema约束
- 约束的好处:可以去规范我们的xml标签(根据自己的要求),可以在工具上有相应的提示
- Dtd与schema的区别:
Dtd没有人约束它,容易写错,功能要简单一些
Schema:有相应的标签约束它,功能更加强大 - DOM模型
- DOM模型:Node(节点)、Element (元素)、Attribute(属性)简写Arr、Text(文本)
(1) D(Document):文档(XML文档),磁盘上面的xml文件
(2) O(Object):对象(Java对象),把xml文件封装成Java对象
(3) M(Model):模型 - 使用原生API解析xml
- 解析xml:其实就是对XML进行增删改查
- 解析xml步骤:
(1) 拿到 Document 对象:(f)属于xml文件的file对象
(2) 得到根节点
(3) 根据名字获得该名字的所有节点的集合
(4) 增加节点并赋值且确认从属关系
(5) 修改
(6) 查询
(7) 删除
(8) 同步
4. Dom4J 解析xml
- dom4J 解析xml:可以从网上获得dom4j的资源
- 步骤
(1) 拿到Document对象
(2) 获得根节点
(3) 根据名字获得所有节点的集合
(4) 增添
(5) 查询
(6) 修改
(7) 删除
(8) 设置/获取联系人的ID属性
(9) 输出格式
dom4J 总结:
SAXReader
|-read(File f) :读取文件
Document
|-getRootElement():获取根节点
Element
|-List elements(String name):获取该名字的所有元素
|-Element element(String name):获取该名字的单个节点
|-String getText():获取文本内容
|-void setText(String str):给节点设置文本
|-Element addElement(String str):添加节点
|-Element addAttribute(String name,String value):设置属性
|-Element getParent():获取父节点
|-void remove(Element e):删除节点e
XMLWriter
|-write(Document dom):将一个dom对象写到一个xml文件中
OutputFormat format = OutputFormat.createPrettyPrint();//定义一个格式