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:一门专门用来查找 XML 数据内容的一门语言 ——> 用来在 XML 文档中对元素及属性进行遍历

可以用定位工具复制XPath,为什么还要写XPath表示式

XPath表示式解决问题的对应场景:

  1. 元素没有 id,name,class 等明显或者唯一属性;
  2. 元素 id 是动态;
  3. 元素定位工具抓取不到;
  4. 复制的 XPath 不稳定(元素本身没有变化,其它元素修改导致该元素定位失效)

XPath的思想: 通过路径找节点(元素属性、内容) 


Baby!还有定位不到的元素吗?无处安放的 Xpath(下集)_哔哩哔哩_bilibiliBaby!还有定位不到的元素吗?无处安放的Xpath(下集)基于Python+Selenium+unitTtest+jenkins的web自动化测试第一章:web自动化测试入门基础06.Xpath实战应用详解完整版教程学习路线请看:BV1DQ4y1f7GG, 视频播放量 19965、弹幕量 223、点赞数 552、投硬币枚数 432、收藏人数 968、转发人数 140, 视频作者 清风说测试开发, 作者简介 软件测试学习交流加V:yinuoqingfeng666,相关视频:人人都能学会的XPath教学--从用户视觉角度定位元素,Baby!还有定位不到的元素吗?无处安放的 Xpath(上集),相见恨晚!小米自动化测试内训,元素定位技巧大揭秘!,【网络爬虫】 第三讲 Xpath——Xpath语法,影刀RPA高级课程(2023版)08:XPath - 定位元素的终极秘诀?,30分钟彻底搞懂,自动化测试中iframe框架如何自由切换!,使用xpath表达式爬取某二手房二级页面,【必看】网页爬虫利器!超实用插件XPath Helper!网页定位神器,小白也能秒变XPa,最好学,最详细的xpath精讲的用法(上),Python爬虫⚡原理入门→案例实战:requests、xpath、scrapy库与框架的使用教程icon-default.png?t=N7T8https://www.bilibili.com/video/BV1BP4y1x7fY/?spm_id_from=333.1007.top_right_bar_window_history.content.click

(2)使用与语法:

2.1 语法规则:  

  • / 根节点,节点分隔符,
  • // 任意位置
  • * 任意元素
  • @ 属性
  • . 当前节点
  • ..  父级节点
  • text 文本值 

2.2 格式:

  • 属性: //*[@属性='属性值']
  • 文本值: //*[text()='文本值'] 

2.3 高级查询:

  • contains模糊查询: contains(@属性/text(),值)] ——> 针对特殊字符,空格等情况
  • starts-with  匹配一个属性开始位置的关键字 

svg: name属性
//*[name()='svg']


(3)案例:

①使用 绝对路径 查找: 

②使用  相对路径 查找: 

③匹配查找: 

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值