0

0

XML轻松学习总节篇

黄舟

黄舟

发布时间:2016-12-23 11:50:48

|

1531人浏览过

|

来源于php中文网

原创

前言

xml越来越热,关于xml的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:xml到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的: 

第一:xml肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会; 

第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高。不要害怕和逃避,毕竟我们还年轻。 

提纲

本文共分五大部分。分别是xml快速入门,xml的概念,xml的术语,xml的实现,xml的实例分析。最后附录介绍了xml的相关资源。作者站在普通网页设计人员的角度,用平实生动的语言,向您讲述xml的方方面面,帮助你拨开xml的神秘面纱,快速步入xml的新领域。 

第一章:xml快速入门

一. 什么是xml? 

二. xml是新概念吗? 

三. 使用xml有什么好处? 

四. xml很难学吗? 

五. xml和html的区别 

六. xml的严格格式 

七. 关于xml的更多 

一. 什么是xml?


这往往是第一个问题,也往往在第一个问题上你就会搞不明白,因为大多的教材上这样回答:

xml是extensible markup language的简写,一种扩展性标识语言。 这是标准的定义。那么什么是标志语言,为什么叫扩展性?已经让人有些糊涂。我想我们这样来理解会好一些:

对html你已经非常熟悉了吧,它就是一种标记语言,记得它的全称吗:"hypertext markup language" 超文本标记语言。明白了?同时,html里面有很多标签,类似,等,都是在html 
4.0里规范和定义,而xml里允许你自己创建这样的标签,所以叫做可扩展性。

这里有几个容易混淆的概念要提醒大家:

1.xml并不是标记语言。它只是用来创造标记语言(比如html)的元语言。天,又糊涂了!不要紧,你只要知道这一点:xml和html是不一样的,它的用处途比html广泛得多,我们将在后面仔细介绍。

2.xml并不是html的替代产品。xml不是html的升级,它只是html的补充,为html扩展更多功能。我们仍将在较长的一段时间里继续使用html。(但值得注意的是html的升级版本xhtml的确正在向适应xml靠拢。)

3.不能用xml来直接写网页。即便是包含了xml数据,依然要转换成html格式才能在浏览器上显示。

下面就是一段xml示例文档(例1),用来表示本文的信息:





xml quick start



ajie



ajie@aolhoo.com



20010115



 


注意:


1.这段代码仅仅是代码,让你初步感性认识一下xml,并不能实现什么具体应用;

2.其中类似,的语句就是自己创建的标记(tags),它们和html标记不一样,例如这里的是文章标题的意思,html里的是页面标题。

二. xml是新概念吗? 

不是。xml来源于sgml,一种比html更早的标志语言标准。 

关于sgml,我们来简单了解一下,你只需要有个大致概念就可以。 

sgml全称是"standard generalized markup language"(通用标识语言标准)。看名称就知道:它是标志语言的标准,也就是说所有标志语言都是依照sgml制定的,当然包括html。sgml的覆盖面很广,凡是有一定格式的文件都属于sgml,比如报告,乐谱等等,html是sgml在网络上最常见的文件格式。因此,人们戏称sgml是html的"妈妈"。 


而xml就是sgml的简化版,只不过省略了其中复杂和不常用的部分。(哦,明白了!是html第二个"mother",难怪比html功能强大呢。),和sgml一样,xml也可以应用在金融,科研等各个领域,我们这里讲的,只是xml在web方面的运用而已。 


到这里,你应该有点明白了:xml是用来创建定义类似html的标记语言,然后再用这个标记语言来显示信息。 三. 使用xml有什么好处? 

有了html,为什么还需要用xml? 

因为现在网络应用越来越广泛,仅仅靠html单一文件类型来处理千变万化的文档和数据已经力不丛心,而且html本身语法十分不严密,严重影响网络信息传送和共享。(想想浏览器兼容的问题伤透多少设计师的脑细胞啊。)人们早已经开始探讨用什么方法来满足网络上各种应用的需要。使用sgml是可以的,但sgml太庞大,编程复杂,于是最终选择了"减肥"的sgml---xml作为下一代web运用的数据传输和交互的工具。 


使用xml有什么好处?来看w3c组织(xml标准制定者)的说明: 

xml使得在网络上使用sgml语言更加"简单和直接": 简化了定义文件类型的过程,简化了编程和处理sgml文件的过程,简化了在web上的传送和共享。 


1.xml可以广泛的运用于web的任何地方; 

2.xml可以满足网络应用的需求; 

3.使用xml将使编程更加简单; 

4.xml便于学习和创建; 

5.xml代码将清晰和便于阅读理解; 

还是抽象了些。让我们在后面的实例教程中慢满体会xml的强大优势吧! 

四. xml很难学吗?

如果你有兴趣学习xml,不禁会问:xml难吗?学习xml需要什么样的基础?

xml非常简单,学习容易。如果你熟悉html,你会发现它的文档和html非常相似,看同样的示例文档(例1):

?xml version="1.0"?>







xml quick start



ajie



ajie@aolhoo.com



20010115





第一行是一个xml声明,表示文档遵循的是xml的1.0 版的规范。

第二行定义了文档里面的第一个元素(element),也称为根元素: 。这个就类似html里的开头标记。注意,这个名称是自己随便定义的。

再下面定义了四个子元素:title,author,email,和date。分别说明文章的标题,作者,邮箱和日期。当然,你可以用中文来定义这些标签,看上去更便于理解: 




xml轻松学习手册标题>

ajie作者>

ajie@aolhoo.com信箱>

20010115日期>

文章>


这就是xml的文档,任何掌握html的网友都可以直接写出这样简单的xml文档。

另外,学习xml还必须掌握一种页面脚本语言,常见的就是javascript和vb script。因为xml数据是使用script实现html中调用和交互的。我们看一个最简单的例子(例2):

1.将下面代码存为myfile.htm






<script language="javascript" for="window" event="onload"><br/><br/>var xmldoc = new activexobject("microsoft.xmldom");<br/><br/>xmldoc.async="false";<br/><br/>xmldoc.load("myfile.xml");<br/><br/>nodes = xmldoc.documentelement.childnodes;<br/><br/>title.innertext = nodesitem(0).text;<br/><br/>author.innertext = nodes.item(1).text;<br/><br/>email.innertext = nodes.item(2).text;<br/><br/>date.innertext = nodes.item(3).text;<br/><br/></script>

在html中调用xml数据





标题:



作者: >



信箱:



日期:










2.将下面代码存为myfile.xml






xml轻松学习手册

ajie

ajie@aolhoo.com

20010115




3.将它们放在同一个目录下,用ie5以上版本浏览器打开,可以看到效果。 学习并掌握一种script,你将真正了解到xml无比的强大的功能。

五. xml和html的区别 


xml和html都来自于sgml,它们都含有标记,有着相似的语法,html和xml的最大区别在于:html是一个定型的标记语言,它用固有的标记来描述,显示网页内容。比如表示首行标题,有固定的尺寸。相对的,xml则没有固定的标记,xml不能描述网页具体的外观,内容,它只是描述内容的数据形式和结构。 


这是一个质的区别:网页将数据和显示混在一起,而xml则将数据和显示分开来。 


我们看上面的例子,在myfile.htm中,我们只关心页面的显示方式,我们可以设计不同的界面,用不同的方式来排版页面,但数据是储存在myfile.xml中,不需要任何改变。 


(如果你是程序员,你会惊讶的发现,这与模块化面向对象编程的思想极其相似!其实网页何尝不是一种程序呢?) 


正是这种区别使得xml在网络应用和信息共享上方便,高效,可扩展。所以我们相信,xml做为一种先进的数据处理方法,将使网络跨越到一个新的境界。


六. xml的严格格式


吸取html松散格式带来的经验教训,xml一开始就坚持实行"良好的格式"。

我们先看html的一些语句,这些语句在html中随处可见:

1.

sample


2.sample


3.sample


4.samplar


在xml文档中,上述几种语句的语法都是错误的。因为:

1.所有的标记都必须要有一个相应的结束标记;

2.所有的xml标记都必须合理嵌套;

3.所有xml标记都区分大小写;

4.所有标记的属性必须用""括起来;

所以上列语句在xml中正确的写法是

1.

sample


2.sample


3.sample


4.samplar


  另外,xml标记必须遵循下面的命名规则:

1.名字中可以包含字母、数字以及其它字母; 

2.名字不能以数字或"_" (下划线) 开头;

3.名字不能以字母 xml (或 xml 或 xml ..) 开头;

4.名字中不能包含空格。 

在xml文档中任何的差错,都会得到同一个结果:网页不能被显示。各浏览器开发商已经达成协议,对xml实行严格而挑剔的解析,任何细小的错误都会被报告。你可以将上面的myfile.xml修改一下,比如将改为,然后用ie5直接打开myfile.xml,会得到一个出错信息页面:






xml轻松学习手册

ajie

ajie@aolhoo.com

20010115

 

七. 关于xml的更多  

好了,到现在你已经知道:  

1.什么是xml;  

2.xml,html,sgml之间的关系和区别;  

3.xml的简单应用。  

 以上就是XML轻松学习总节篇的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Post AI
Post AI

博客文章AI生成器

下载

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

1

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

21

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

106

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

50

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

87

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

27

2026.03.03

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

79

2026.02.28

Golang 工程化架构设计:可维护与可演进系统构建
Golang 工程化架构设计:可维护与可演进系统构建

Go语言工程化架构设计专注于构建高可维护性、可演进的企业级系统。本专题深入探讨Go项目的目录结构设计、模块划分、依赖管理等核心架构原则,涵盖微服务架构、领域驱动设计(DDD)在Go中的实践应用。通过实战案例解析接口抽象、错误处理、配置管理、日志监控等关键工程化技术,帮助开发者掌握构建稳定、可扩展Go应用的最佳实践方法。

61

2026.02.28

Golang 性能分析与运行时机制:构建高性能程序
Golang 性能分析与运行时机制:构建高性能程序

Go语言以其高效的并发模型和优异的性能表现广泛应用于高并发、高性能场景。其运行时机制包括 Goroutine 调度、内存管理、垃圾回收等方面,深入理解这些机制有助于编写更高效稳定的程序。本专题将系统讲解 Golang 的性能分析工具使用、常见性能瓶颈定位及优化策略,并结合实际案例剖析 Go 程序的运行时行为,帮助开发者掌握构建高性能应用的关键技能。

50

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
XML教程
XML教程

共142课时 | 7.9万人学习

XQuery 教程
XQuery 教程

共12课时 | 4.4万人学习

XLink  教程
XLink 教程

共7课时 | 1.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号