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

XML作用

什么是xml?

xml指可扩展标记语言。

xml被设计用来存储数据,不显示数据。

XML 需要自行定义标签,且标签名称具有自我描述性。
XML 是 W3C 推荐的数据传输存放标准。

XML数据格式主要的用途又有哪些?

程序之间的数据传输通讯 程序之间的数据传输通讯
PHP语言 <- 快递100 <- Java语言
配置文件 配置文件config.xml
config.xml -> php语言、java语言、Python语言
存储数据,充当小型数据库 存储数据,充当小型数据库
data.xml
规范数据格式 规范数据格式,是数据具有结构性,易读易处理 是数据具有结构性,易读易处理

XML和HTML的区别: 的区别:
1:html标签不能自定义,XML只能自定义标签;
2:html语法要求不严格,xml对于语法的要求非常严格,标签必须是闭合的;
3:XML 被设计用来传输和存储数据,其焦点是数据内容。
HTML 被设计用来显示数据,其焦点是数据的外观呈现。

xml的基本语法:

XML 的语法规则很简单,且很有逻辑。

XML 文档必须有根元素 文档必须有根元素
根元素是所有其他元素的父元素;

<root>
  <child>
    <subchild>.....</subchild>
  </child>
</root>

如上代码,root就是根元素;

XML 声明 声明
<?xml version="1.0" encoding="utf-8"?>
声明文件是可选部分,如果存在需要放在文档的第一行;
version :版本号,代表XML使用的版本号
encoding :编码格式,默认UTF-8
所谓的文档声明就是告诉解析器当前文档格式、版本号以及编码格式。
1.所有的 所有的 XML 元素都必须是成对闭合标签 元素都必须是成对闭合标签

2.非闭合标签是非法的,解析器将报错,不无正常解析;

3.XML 标签对大小写敏感 标签对大小写敏感。

4.XML标签不允许有交叉嵌套 标签不允许有交叉嵌套
5.XML标签名不建议使用特殊字符,尽量只用数字字母下划线 标签名不建议使用特殊字符,尽量只用数字字母下划线

6.XML 中的注释 中的注释
7.在 XML 中编写注释的语法与 HTML 的语法一致。

实体引用 实体引用 & 特殊字符 特殊字符
在 XML 中,一些字符拥有特殊的意义。
如果您把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。

&lt来代替 "<" 字符:

在 XML 中,有 5 个预定义的实体引用:

&lt;<
&gt;>
&amp;&
&apos;'
&quot"

xml元素属性

XML 元素中,也可以随意添加一个或多个属性,但是:
属性值一定要用引号(单引号或双引号)引起来
属性名称的命名规范与元素的命名规范相同
元素中的属性是不允许重复的

其实,属性也是用来存储数据信息的,
没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用元素。
但实际开发经验是 在HTML中,属性用起来很便利,而在 XML 中,应该尽量避免使用属性。
因为:
一个属性不能包含多个值(元素可以)
属性值不能是结构化数据(元素可以)
属性不容易扩展(为未来的变化)
属性难以阅读和维护。
将数据放在属性中和放在子元素中,目的都是为了传输数据,而子元素更加容易被解析;

CDATA:

在浏览器中运行以上代码,会报错,因为数据中有很多特殊字符,
我们可以使用实体字符替换,但是,数据量太大,导致修改繁琐且极度困难;
当我们遇到大量特殊字符时,可以使用CDATA将数据包裹;

例如:

<?xml version="1.0" encoding="UTF-8"?>
<strory>
    <title>这是一个伤心的故事</title>
    <d>震惊!!!著名数学家尼古拉斯赵四,却难解小学考题</d>
    <![CDATA[ 要存放的数据 ]]>
    <con><![CDATA[小学进博士考题1:已知 c<4,d>5,问:c和d那个更好看? ]]> </con>
</strory>

对于内容比较少的情况,我们可以使用实体引用对特殊字符进行直接替换操作。
对于内容比较多的情况,如果文章描述、文章内容等等建议采用CDATA区段。

PHP解析xml文档:

ML是一种数据传输格式,当PHP接收到的数据就是一段XML的时候,PHP提供了一个非常非常强大的类库,SimpleXML类库,专门用于实现对XML文档的解析操作。

XML 解析原理:

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

读取解析成对象:

simplexml_load_file('xml_path')方法:

读取节点的属性:

attributes()方法获取节点属性

使用 使用SimpleXML增加节点:

//创建添加子节点

addChild('xxx','123'); 第二个属性可以写节点值

//创建添加子节点

addAttribute('xx');

asXML('xx.xml');//保存数据进XML文件,没有文件,则创建;

~~~~~~~~~~~~~结

 

转载于:https://www.cnblogs.com/bjphp/p/8598658.html

相关文章:

  • ReportViewer:隐藏和GetDefaultPageSettings
  • ETL总结(扫盲版)
  • sql server 内置MD5加密函数
  • POJ 1011 Sticks 强大的剪枝
  • 2018/3/20 noip模拟赛 5分
  • windows2003 with OpenSSH
  • java和c#通过esb服务互调用组件
  • 4、自定义cookieHandler发送请求
  • python 魔法方法补充(__setattr__,__getattr__,__getattribute__)
  • /*在DataTable中更新、删除数据*/
  • A* 简介(Amit's A star Page中译文)
  • 文本挖掘的基本过程
  • python web开发-flask读取txt文件内容
  • (C#)获取字符编码的类
  • codefroces 911G Mass Change Queries
  • 【刷算法】从上往下打印二叉树
  • avalon2.2的VM生成过程
  • bearychat的java client
  • C++入门教程(10):for 语句
  • CentOS6 编译安装 redis-3.2.3
  • centos安装java运行环境jdk+tomcat
  • Electron入门介绍
  • JavaScript新鲜事·第5期
  • js中的正则表达式入门
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • npx命令介绍
  • Sass Day-01
  • SSH 免密登录
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Vultr 教程目录
  • 从零开始的无人驾驶 1
  • 新书推荐|Windows黑客编程技术详解
  • 找一份好的前端工作,起点很重要
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​secrets --- 生成管理密码的安全随机数​
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (三)Honghu Cloud云架构一定时调度平台
  • (转)关于多人操作数据的处理策略
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .net打印*三角形
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • /*在DataTable中更新、删除数据*/
  • ??eclipse的安装配置问题!??
  • ??javascript里的变量问题
  • [android] 练习PopupWindow实现对话框
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C++]Leetcode17电话号码的字母组合
  • [codevs 1288] 埃及分数 [IDdfs 迭代加深搜索 ]
  • [CTF]2022美团CTF WEB WP
  • [flask] flask的基本介绍、flask快速搭建项目并运行