第十章,XML

高级编程

文章目录

第十章,XML
一,XML简介
  • XML(EXtensible Markup Language),可扩展标记语言

  • 特点

    • XML与操作系统。编程语言的开发平台无关
    • 实现不同系统数据之间的交换
  • 作用

    • 数据交互
    • 配置应用程序和网站
    • Ajax基石
  • XML文档结构

    xml 复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <books>
        <!--图书信息 -->
        <book id="bk101">
            <author>王珊</author>
            <title>.NET高级编程</title>
            <description>包含C#框架和网络编程等</description>
        </book>
        <book id="bk102">
            <author>李明明</author>
            <title>XML基础编程</title>
            <description>包含XML基础概念和基本作用</description>
        </book>
    </books>
  • XML标签

    • XML文档内容由一系列表标签元素组成

      xml 复制代码
      <元素名 属性名="属性值">元素内容</元素名>
    • 属性值用双引号包裹

    • 一个元素可以有多个属性

    • 属性值中不能直接包含<、"、&

    • 不建议使用的字符:'、>

二,XML编写注意事项
  • 所有XML元素都必须有结束标签
  • XML标签对大小写敏感
  • XML必须正确的嵌套
  • 同级标签以缩进对齐
  • 元素名称可以包含字母、数字或其他的字符
  • 元素名称不能以数字或者标点符号开始
  • 元素名称中不能含空格
三,转移符
四,XML解析器
  • 解析器类型
    • 非验证解析器
      • 检查文档格式是否良好
    • 验证解析器
      • 使用DTD检查文档格式的有效性
五,XML命名空间
  • XML命名空间的作用

    • 解决在复杂,大型xml文件中,出现名称相同,但是含义不同的元素

      xml 复制代码
      <?xml version="1.0" encoding="UTF-8"?>
      <cameras xmlns:canon="http://www.canon"
          xmlns:nikon="http://www.nikon.com">
          <canon:camera prodID="P663" name="Camera傻瓜相机"/>
          <nikon:camera prodID="K29B3" name="Camera超级35毫米相机"/>
      </cameras>
六,解析XML技术
  • DOM
    • 基于XML文档树结构的解析
    • 适用于多次访问的XML文档
    • 特点:比较消耗资源
  • SAX
    • 基于事件的解析
    • 适用于大数据量的XML文档
    • 特点:占用资源少,内存消耗小
  • DOM4J
    • 非常优秀的Java XML API
    • 性能优异、功能强大
    • 开放源代码
七,DOM解析XML
  • DOM介绍

    • 文档对象模型(Document Object Model)
    • DOM把XML文档映射成一个倒挂的树
  • 常用接口介绍

  • 访问DOM树节点

    • DOM解析XML文件步骤
      • 创建解析器工厂对象
      • 解析器工厂对象创建解析器对象
      • 解析器对象指定XML文件创建Document对象
      • 以Document对象为起点操作DOM树
八,保存XML文件
  • 获得TransformerFactory对象
  • 创建Transformer对象
  • 创建DOMSource对象
    • 包含XML信息
  • 设置输出属性
    • 编码格式
  • 创建StreamResult对象
    • 包含保存文件的信息
  • 将XML保存到指定文件中
相关推荐
蓝澈112119 分钟前
迪杰斯特拉算法之解决单源最短路径问题
java·数据结构
Kali_0726 分钟前
使用 Mathematical_Expression 从零开始实现数学题目的作答小游戏【可复制代码】
java·人工智能·免费
rzl0238 分钟前
java web5(黑马)
java·开发语言·前端
君爱学习43 分钟前
RocketMQ延迟消息是如何实现的?
后端
guojl1 小时前
深度解读jdk8 HashMap设计与源码
java
Falling421 小时前
使用 CNB 构建并部署maven项目
后端
guojl1 小时前
深度解读jdk8 ConcurrentHashMap设计与源码
java
程序员小假1 小时前
我们来讲一讲 ConcurrentHashMap
后端
爱上语文1 小时前
Redis基础(5):Redis的Java客户端
java·开发语言·数据库·redis·后端