第十章,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保存到指定文件中
相关推荐
凡人的AI工具箱13 分钟前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang
陈王卜16 分钟前
django+boostrap实现发布博客权限控制
java·前端·django
小码的头发丝、16 分钟前
Spring Boot 注解
java·spring boot
java亮小白199721 分钟前
Spring循环依赖如何解决的?
java·后端·spring
飞滕人生TYF28 分钟前
java Queue 详解
java·队列
2301_8112743138 分钟前
大数据基于Spring Boot的化妆品推荐系统的设计与实现
大数据·spring boot·后端
武子康1 小时前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康1 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
苏-言1 小时前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring
界面开发小八哥1 小时前
更高效的Java 23开发,IntelliJ IDEA助力全面升级
java·开发语言·ide·intellij-idea·开发工具