当前位置: 首页 > news >正文

XML 学习笔记

简介: 

(1)XML:可扩展性标记语言,用于传输和存储数据,而不是展示数据,是W3C 推举的数据传输格式。

  •  XML的标签必须自定义,但是在写标签名的时候一定要有含义。 
  •  XML 只能有一个根节点!

菜鸟XML教程:

XML 教程 | 菜鸟教程XML 教程 XML 指可扩展标记语言(eXtensible Markup Language)。 XML 被设计用来传输和存储数据,不用于表现和展示数据,HTML 则用来表现数据。 XML 很重要,也很容易学习。 现在开始学习 XML! XML 实例 XML 文档第一行以 XML 声明开始,用来表述文档的一些信息,如: XML 定义结构、存储信息、传送信息。 XML 文档实例 [mycode3 type='..icon-default.png?t=N7T8https://www.runoob.com/xml/xml-tutorial.html

 标准的 XML 数据格式:

<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<id>1</id>
<name>张三</name>
<age>30</age>
<gender>男</gender>
<email>zhangsan@example.com</email>
<department>技术部</department>
<insurance>
<item>养老保险</item>
<item>医疗保险</item>
<item>失业保险</item>
<item>工伤保险</item>
<item>生育保险</item>
</insurance>
<housingFund>3000</housingFund>
<enterpriseAnnuity>1000</enterpriseAnnuity>
</employee>
<employee>
<id>2</id>
<name>李四</name>
<age>28</age>
<gender>男</gender>
<email>lisi@example.com</email>
<department>市场部</department>
<insurance>
<item>养老保险</item>
<item>医疗保险</item>
<item>失业保险</item>
<item>工伤保险</item>
<item>生育保险</item>
</insurance>
<housingFund>2500</housingFund>
<enterpriseAnnuity>800</enterpriseAnnuity>
</employee>
</employees>

根元素:<employees> 是根元素,表示所有员工信息的集合。
子元素:每个 <employee> 元素表示一个员工的信息。
属性:每个 <employee> 下有多个子元素,包括 id、name、age、gender、email 和 department,分别表示员工的ID、姓名、年龄、性别、电子邮件和部门。
保险信息:<insurance> 元素下可以包含多个 <item> 元素,用于列出员工的五项保险。
住房公积金和企业年金:包含 <housingFund> 和 <enterpriseAnnuity> 元素,分别表示住房公积金和企业年金的金额。

(2)XML 主要功能:

  1. 程序之间的数据传输通讯;
  2. 配需文件 config.xml;
  3. data.xml 存储数据,充当小型数据库

XML 数据格式最主要的功能:  数据传输——>规范数据格式,使数据具有结构性,易读易处理

(3)XML 和 HTML有哪些不一样? 

HTML 标签不能自定义,XML 标签只能自定义;

HTML  语法要求不严格;XML 语法要求极其严格,必须是成对标签;

HTML 用来展示数据,XML 用来传输和存储数据


XML基本语法

(1)语法规则:

XML 必须有根节点 ——> 根节点就是其他所有节点的父级节点;

 XML 头声明:不强制要求,可有可无,但建议书写;

标签名大小写敏感(区分大小写) ;

标签不允许交叉。

 特殊字符使用实体转义,在 XML 中需要转义的字符有:


XML 属性 

 

属性:表示标签自身的一些额外信息。在解析 XML 数据时,属性会带来额外的解析代码(多了一步,比较麻烦)

属性规则:

  1. 一个标签可以有多个属性,属性的值必须使用引号引起来;
  2. 命名规则: 数字字母下划线,数字不能开头;

CDATA: 

用处:用于表示包含在XML文档中的纯文本数据的一种机制,这些数据不被解析器解析为XML标记。用CDATA节可以避免特殊字符(如 < 和 &)对XML解析产生干扰 

注意: 特殊字符较少时,使用实体替换,较多时使用 cdata 


 PHP 解析 XML 文档

XML 是一种数据传输格式,当 PHP 接收到的数据就是一段 XML 的时候,我们的 PHP 应该怎么处理 XML 数据呢?
在 PHP5 版本以后,其提供了一个非常非常强大的类库,SimpleXML 类库,专门用于实现对 XML 文档的解析操作。 

(1)XML在解析步骤:

①读取XML文档到内存;
②形成DOM树结构;
③生成SimpleXML对象。

(2)PHP 解析 XML 后返回对象的注释:

(3)遍历 XML  数组:

(4)添加节点: 


案例: 

读取以下数据:

 

 


XPath

(1)概述:XPath:一门专门用来查找X,数据内容的一门语言——>用来在 XML 文档中对元素及属性进行遍历

(2)使用与语法:

①使用 绝对路径 查找: 

 

②使用  相对路径 查找: 

③匹配查找: 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ZeroMQ(二):请求-响应模式,C和C++。
  • 中国AI大模型场景探索及产业应用调研报告
  • 类和对象(上) - c++
  • 【React】常见的 HOC 使用案例
  • Qt Designer,仿作一个ui界面的练习(一):界面的基本布局
  • Unity四元数线性插值Lerp
  • C++篇:入门(2)
  • 重磅更新||Pyside6|Pyqt实现处理GUI界面获取的数据时进度条同步更新
  • 第一个 Flask 项目
  • 第十二节、人物下蹲
  • 生产力工具|vscode for mac安装及过程留存
  • 探索哈希表:C++中的实现与操作详解【Map、Set、数据结构】
  • 【Python学习手册(第四版)】学习笔记13.1-while、for循环
  • C++的STL简介(一)
  • R语言统计分析——描述性统计
  • [deviceone开发]-do_Webview的基本示例
  • 10个最佳ES6特性 ES7与ES8的特性
  • JavaScript中的对象个人分享
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 简单实现一个textarea自适应高度
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 批量截取pdf文件
  • 深入浅出webpack学习(1)--核心概念
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 突破自己的技术思维
  • 1.Ext JS 建立web开发工程
  • Hibernate主键生成策略及选择
  • 大数据全解:定义、价值及挑战
  • # windows 安装 mysql 显示 no packages found 解决方法
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #define 用法
  • (arch)linux 转换文件编码格式
  • (算法二)滑动窗口
  • (推荐)叮当——中文语音对话机器人
  • (转)C#调用WebService 基础
  • ******之网络***——物理***
  • .Net Core 笔试1
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET建议使用的大小写命名原则
  • .NET开源项目介绍及资源推荐:数据持久层
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [20180224]expdp query 写法问题.txt
  • [AIGC] Java 和 Kotlin 的区别
  • [AIGC] SpringBoot的自动配置解析
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [BZOJ4566][HAOI2016]找相同字符(SAM)
  • [C++][opencv]基于opencv实现photoshop算法色阶调整
  • [C语言]——函数递归
  • [DevEpxress]GridControl 显示Gif动画