作者:秋知落叶冷 | 来源:互联网 | 2017-05-14 02:24
XML被设计用来传输和存储数据。类似于JSON。XML指可扩展标记语言(EXtensibleMarkupLanguage)XML是一种标记语言,很类似HTMLXML的设计宗旨是传输数据,而非显示数据XML标签没有被预定义。您需要自行定义标签。XML被设计为具有自我描述性。XML是W3C的推荐标准
XML 简介
XML 被设计用来传输和存储数据。类似于JSON。
XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准
XML 被设计用来结构化、存储以及传输信息。(没有格式双方很难知道信息的结构内容)
实例:
George
John
Reminder
Don't forget the meeting!
实例解释: 第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。 描述文档的根元素
//根元素的开始
**
//根元素的结尾4个子元素
George
John
Reminder
Don't forget the meeting!就这样XML文档会形成一种树结构,如下:
George
John
Reminder
George
John
Reminder
所有 XML 元素都须有关闭标签
This is a paragraph //错
This is a paragraph
//对XML 标签对大小写敏感
这是错误的。 //错
这是正确的。 //对XML 必须正确地嵌套
This text is bold and italic //错
This text is bold and italic //对XML 的属性值须加引号
//错
George
John
//对
George
John
实体引用:就是特殊字符的转意。 < < 小于 > > 大于 & & 和号 ' &#39; 单引号 " " 引号
if salary <1000 then 想要的:
if salary <1000 then XML 中的注释
在 XML 中,空格会被保留 HTML 会把多个连续的空格字符裁减(合并)为一个:
HTML:Hello my name is David.
输出:Hello my name is David. 在 XML 中,文档中的空格不会被删节。
XML 元素 开始标签直到(且包括)结束标签的部分。如:
John 元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。如:
//category(属性)
//book的子元素,这个子元素只有文本内容
J K. Rowling
2005
29.99
XML 命名规则
XML 元素必须遵循以下命名规则: 名称可以含字母、数字以及其他的字符 名称不能以数字或者标点符号开始 名称不能以字符 “xml”(或者 XML、Xml)开始 名称不能包含空格
XML 元素 vs. 属性
//属性
Anna
Smith
female //元素
Anna
Smith
没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素,在 XML 中, 您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。 属性无法包含多重的值(元素可以) 属性无法描述树结构(元素可以) 属性不易扩展(为未来的变化) 属性难以阅读和维护
XML 命名空间(XML Namespaces)
XML 命名空间提供避免元素命名冲突的方法。 这个 XML 文档携带着某个表格中的信息:
这个 XML 文档携带有关桌子的信息(一件家具):
African Coffee Table
80
120
由于两个文档都包含带有不同内容和定义的
元素,就会发生命名冲突。 使用前缀来避免命名冲突
Apples
Bananas
African Coffee Table
80
120
使用命名空间(Namespaces)
Apples
Bananas
此 XML 文档携带着有关一件家具的信息:
African Coffee Table
80
120
默认的命名空间(Default Namespaces)
为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。
此 XML 文档携带着有关一件家具的信息:
African Coffee Table
80
120
命名空间是就近原则的
data in a //默认的命名空间
data in b //w命名空间
data in e
//就近原则
CDATA 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。(就是里面的数据不进行XML解析) CDATA 部分由 "" 结束:
以上就是详细介绍XML原理代码实例的详细内容,更多请关注 第一PHP社区 其它相关文章!
推荐阅读
探讨如何高效使用FastJSON进行JSON数据解析,特别是从复杂嵌套结构中提取特定字段值的方法。 ...
[详细]
蜡笔小新 2024-12-27 19:49:07
本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ...
[详细]
蜡笔小新 2024-12-28 10:36:30
本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ...
[详细]
蜡笔小新 2024-12-27 19:31:05
本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ...
[详细]
蜡笔小新 2024-12-27 13:10:20
本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ...
[详细]
蜡笔小新 2024-12-26 16:06:09
本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ...
[详细]
蜡笔小新 2024-12-25 21:01:14
在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ...
[详细]
蜡笔小新 2024-12-25 18:48:34
本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ...
[详细]
蜡笔小新 2024-12-25 18:30:21
本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ...
[详细]
蜡笔小新 2024-12-25 18:10:18
nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ...
[详细]
蜡笔小新 2024-12-28 13:00:24
在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ...
[详细]
蜡笔小新 2024-12-28 08:20:07
本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ...
[详细]
蜡笔小新 2024-12-28 04:11:47
本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ...
[详细]
蜡笔小新 2024-12-28 02:40:28
本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ...
[详细]
蜡笔小新 2024-12-27 20:40:29
本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ...
[详细]
蜡笔小新 2024-12-27 19:44:14