【笔记】XML数据传输格式_黑马程序员课程

课程来源:XML教学视频_黑马程序员_B站
总结:认识XML-PHP解析XML(解析的方式方法)


1.XML概述

1.1引入

XML长成什么样子:不是HTML,但是和HTML有些像
天气预报的XML文档

XML数据格式
XML是一种跨平台的,与软、硬件无关的,处理与传输信息的工具。

  1. 最主要的功能就是数据传输:如由一个服务器到另外一个服务器,由一个网站到另外一个网站
  2. XML数据格式主要的用途又有哪些?
    (1)程序之间的数据传输通讯:Java语言→快递100→PHP语言
    (2)配置文件config.xml→php语言、java语言、Python语言(写一份配置文件提供给各种语言使用)(有些比较复杂的网站用到的语言比较多)
    (3)存储数据,充当小型数据库data.xml,如存放网站的备案号

规范数据格式,使数据具有结构性,易读易处理
虽然我们知道了这是XML,也知道用来做什么,但是,我们还是不会使用
知己知彼,百战不殆,想要更好的使用XML,我们需要对XML做一个彻底的了解

1.2什么是XML

XML=可扩展性标记语言eXtensible Markup Language

  • 用来传输和存储数据,而不是展示数据
  • 标签必须自定义,但是在写标签名时一定要有含义
  • XML是W3C推举的数据传输格式

HTML=超文本标记语言(展示数据;标签无法自定义)

自定义后的标签浏览器识别不了

如何自己写一段XML:

  • 文件名后缀:XML
  • 所有的XML文件必须要有一个根节点/根标签**
<root>
<user>西岭</user>
<msg>超级大帅哥</msg>
</root>

什么样的情况是对的?

或者这样也是对的

XML和HTML区别
html与xml的区别与联系(笔记)

区别项 XML HTML
标签 只能自定义 不能自定义
语法要求 语言要求极其严格,必须是成对标签 语法要求不严格
功能 传输和存储数据 展示数据

2.XML的基本语法

2.1语法规则

XML必须有根节点:根节点就是其他所有节点的父级节点
比较常用的根节点命名root,本课程中根节点就是root

<root>
<shuibian>……</shuibian>
<xie>……</xie>
</root>

XML头声明:不强制要求,可有可无,但是建议写(编码)
vesion版本号

<?xml version="1.0" encoding="utf-8" ?>
<root>
   <shuibian>……</shuibian>
   <xie>……</xie>
</root>

所有XML元素都必须是成对标签

<a>和</a>

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

<a>和</A>

标签不能交叉

<a>TEST<b>TEST</a>day</b>

XML中怎么注释?和HTML中的注释是一样

<!-- 需要注释的内容 -->

如果遇到特殊字符,如<等需要使用实体转义

<msg>如果46 < 47,那么请求证,XXX?</msg>

需要转化成

<msg>如果46 &lt; 47,那么请求证,XXX?</msg>

在XML中需要转义的字符有:

2.2元素属性

例子:比如img 标签,必须要有 src属性 。

<img src="">

img 标签,本身的目的:就是个图片标签 。
src 属性的作用是:告诉你要展示的图片在哪里

<?xml vesion="1.0" encoding="utf-8" ?>
<root>
    <man>
        <name>张三</name>
        <age>36</age>
    </man>
    <man>
        <name age="38">李四</name>
    </man>
</root>

一个标签可以有多个属性,属性的值必须使用引号分隔开
命名规则:数字字母下划线,数字不能开头
属性:表示标签自身的一些额外信息
XML中属性就是一个鸡肋(食之无肉,弃之可惜)

还有,在解析XML数据时,属性会带来额外的解析代码(多了一步)

2.3CDATA

<!--<![CDATA[……不能解析的内容]]> -->
不需要再做实体转义

注意:特殊字符较少时,使用实体替换,较多时使用CDATA
CDATA必须大写


3.使用PHP解析XML

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

3.1XML解析原理&3.2SimpleXML类库

XML文件实例3.1.xml

<?xml vesion="1.0" encoding="utf-8" ?>
<root>
    <man>
        <name>张三</name>
        <age>36</age>
    </man>
    <man>
        <name>李四</name>
        <age>38</age>
    </man>
</root>
<?php
// simplexml_load_file 解析XML文档,返回PHP对象
$x = simplexml_load_file('3.1.xml')
//打印X
var_dump($x);
//返回张三
echo $x ->man[0]->name;

如何解析(DOM树)

PHP解析XML共分为3步:

  1. 读取XML文档到内存
  2. 形成DOM树
  3. 由DOM树生成对象并返回

3.3遍历XML数据

有些偏PHP的知识

3.4添加节点

3.5案例


案例


4.Xpath语言

4.1概览

什么是XPath:一门专门用来查找XML数据内容的一门语言
用来在XML文档中对元素及属性进行遍历

4.2使用及语法

绝对引用和相对引用
使用

posted @ 2022-03-27 16:45  bearman  阅读(640)  评论(0)    收藏  举报