第十章,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保存到指定文件中
相关推荐
apcipot_rain10 分钟前
C++转Java日记(10)
java·开发语言
初学AI的小高44 分钟前
Agent 工具太多怎么办:BM25 检索、依赖补全与按需加载实战
后端·agent
用户6602676118791 小时前
AI 代码上线前的第 24 道门禁:上线失败时,怎样在 10 分钟内退回?
后端·架构
NishikiAsumi07211 小时前
一次170万行的导出:sql优化远没有加索引这么简单
后端
简 洁 冬冬1 小时前
泛型方法写法全面辨析:从「能编译」到「能跑」到「能用」
java·泛型
LGL6030A1 小时前
Java学习历程31——初识Spring Boot
java·spring boot·学习
xjz18422 小时前
Rust 注释:从 // 到 rustdoc
后端
Lansonli3 小时前
大数据Spark(八十八):Spark任务资源之Standalone集群测试
java·服务器·spark
syyjhchou3 小时前
自己搭企业内部中转站,怎么让请求更容易命中缓存
人工智能·后端·语言模型·aigc
budingxiaomoli3 小时前
Spring AOP
java·spring·java-ee