首页 后端开发 XML/RSS教程 XML指南——XML 语法

XML指南——XML 语法

Feb 11, 2017 pm 03:31 PM
语法

  
XML的语法规则既简单又严格,非常容易学习和使用。
正因为如此,编写读取和操作XML的软件也是相对容易的事情。



一个XML文档的例子
XML文档使用了自描述的和简单的语法。

<?xml version="1.0" encoding="ISO-8859-1"?> 
<note> 
<to>Lin</to> 
<from>Ordm</from> 
<heading>Reminder</heading> 
<body>Don&#39;t forget me this weekend!</body> 
</note>
登录后复制


文档的第1行:XML声明——定义此文档所遵循的XML标准的版本,在这个例子里是1.0版本的标准,使用的是ISO-8859-1 (Latin-1/West European)字符集。
文档的第2行是根元素(就象是说“这篇文档是一个便条”):



文档的第3--6行描述了根元素的四个子节点(to, from, heading,和 body):

<to>Lin</to> 
<from>Ordm</from> 
<heading>Reminder</heading> 
<body>Don&#39;t forget me this weekend!</body>
登录后复制


文档的最后一行是根元素的结束:


你能从这个文档中看出这是Ordm给Lin留的便条么?难道能不承认XML是一种美丽的自描述语言么?

所有的XML文档必须有一个结束标记
在XML文档中, 忽略结束标记是不符合规定的。
在HTML文档中,一些元素可以是没有结束标记的。下面的代码在HTML中是完全合法的:

<p>This is a paragraph 
<p>This is another paragraph
登录后复制


但是在XML文档中必须要有结束标记,象下面的例子一样:

<p>This is a paragraph</p> 
<p>This is another paragraph</p>
登录后复制


注意: 你可能已经注意到了,上面例子中的第一行并没有结束标记。这不是一个错误。因为XML声明并不是XML文档的一部分,他不是XML元素,也就不应该有结束标记。


XML标记都是大小写敏感的
这与HTML不一样, XML标记是大小写敏感的。
在XML中, 标记与标记是两个不同的标记。
因此在XML文档中开始标记和结束标记的大小写必须保持一致。

<Message>This is incorrect</message>   //错误的 
<message>This is correct</message>     //正确的
登录后复制

所有的XML元素必须合理包含
在XML中不允许不正确的嵌套包含。
在HTML中,允许有一些不正确的包含,例如下面的代码可以被浏览器解析:

<b><i>This text is bold and italic</b></i>
登录后复制

在XML中所有元素必须正确的嵌套包含,上面的代码应该这样写:

<b><i>This text is bold and italic</i></b>
登录后复制

所有的XML文档必须有一个根元素
XML文档中的第一个元素就是根元素。
所有XML文档都必须包含一个单独的标记来定义,所有其他元素的都必须成对的在根元素中嵌套。XML文档有且只能有一个根元素。
所有的元素都可以有子元素,子元素必须正确的嵌套在父元素中,下面的代码可以形象的说明:

<root> 
<child> 
<subchild>.....</subchild> 
</child> 
</root>
登录后复制

属性值必须使用引号""
在XML中,元素的属性值没有引号引着是不符合规定的。
如同HTML一样,XML元素同样也可以拥有属性。XML元素的属性以名字/值成对的出现。XML语法规范要求XML元素属性值必须用引号引着。请看下面的两个例子,第一个是错误的,第二个是正确的。

 
 
<to>Lin</to> 
<from>Ordm</from> 
<heading>Reminder</heading> 
<body>Don&#39;t forget me this weekend!</body> 
登录后复制
<?xml version="1.0" encoding="ISO-8859-1"?> 
<note date="12/11/99"> 
<to>Tove</to> 
<from>Jani</from> 
<heading>Reminder</heading> 
<body>Don&#39;t forget me this weekend!</body> 
</note>
登录后复制

第一个文档的错误之处是属性值没有用引号引着。 
正确的写法是: date="12/11/99". 不正确的写法: date=12/11/99.

使用XML,空白将被保留
在XML文档中,空白部分不会被解析器自动删除。
这一点与HTML是不同的。在HTML中,这样的一句话:
"Hello              my name is Ordm"将会被显示成:“Hello my name is Ordm”,
因为HTML解析器会自动把句子中的空白部分去掉。

使用XML, CR / LF 被转换为 LF
使用 XML, 新行总是被标识为 LF(Line Feed,换行)。
你知道打字机是什么么?呵呵,打字机是在上个世纪里使用的一种专门打字的机器。^&^
当你用打字机敲完一行字后,你通常不得不再把打字头移动到纸的左端。 
在Windows应用程序中,文本中的新行通常标识为 CR LF (carriage return, line feed,回车,换行)。在Unix应用程序中,新行通常标识为 LF。还有一些应用程序只使用CR来表示一个新行。

XML中的注释
在XML中注释的语法基本上和HTML中的一样。
 

XML并没有什么特别的哦
XML确实没有什么特别的地方。他只是一些用尖括号扩在一起的普通的纯文本。
编辑普通文本的软件也可以编辑XML文档。
然而在一个支持XML的应用程序中,XML标记往往对应着特殊的操作,有些标记可能是可见的,而有些标记则可能不会显示出来,而不会有什么特殊的操作。            

以上就是XML指南——XML 语法的内容,更多相关内容请关注PHP中文网(www.php.cn)!


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何快速把你的 Python 代码变为 API 如何快速把你的 Python 代码变为 API Apr 14, 2023 pm 06:28 PM

提到API开发,你可能会想到DjangoRESTFramework,Flask,FastAPI,没错,它们完全可以用来编写API,不过,今天分享的这个框架可以让你更快把现有的函数转化为API,它就是Sanic。Sanic简介Sanic[1],是Python3.7 Web服务器和Web框架,旨在提高性能。它允许使用Python3.5中添加的async/await语法,这可以有效避免阻塞从而达到提升响应速度的目的。Sanic致力于提供一种简单且快速,集创建和启动于一体的方法

PHP8.0中新的类型别名语法 PHP8.0中新的类型别名语法 May 14, 2023 pm 02:21 PM

随着PHP8.0的发布,新增了一种类型别名语法,使得使用自定义的类型变得更加容易。在本文中,我们将深入了解这种新的语法,以及它对开发人员的影响。什么是类型别名?在PHP中,类型别名本质上是一个变量,它引用另一个类型的名称。这个变量可以像其他类型一样使用,并在代码中的任何地方声明。这种语法的主要作用是为常用的类型定义自定义别名,使得代码更加易于阅读和理解。

lambda 表达式的语法和结构有什么特点? lambda 表达式的语法和结构有什么特点? Apr 25, 2024 pm 01:12 PM

Lambda表达式是无名称的匿名函数,其语法为:(parameter_list)->expression。它们具有匿名性、多样性、柯里化和闭包等特点。实际应用中,Lambda表达式可用于简洁地定义函数,如求和函数sum_lambda=lambdax,y:x+y,并通过map()函数应用于列表来进行求和操作。

Go语言与JS的联系与区别 Go语言与JS的联系与区别 Mar 29, 2024 am 11:15 AM

Go语言与JS的联系与区别Go语言(也称为Golang)和JavaScript(JS)都是当前流行的编程语言,它们在某些方面有联系,在其他方面又有明显的区别。本篇文章将探讨Go语言与JavaScript之间的联系与区别,同时提供具体的代码示例来帮助读者更好地理解这两种编程语言。联系:都是跨平台的Go语言和JavaScript都是跨平台的,可以在不同的操作系统

PHP8.0中的父类调用语法 PHP8.0中的父类调用语法 May 14, 2023 pm 01:00 PM

PHP是一种广泛应用于Web开发的服务器端脚本语言,而PHP8.0版本中引入了一种新的父类调用语法,让面向对象编程更加方便和简洁。在PHP中,我们可以通过继承的方式创建一个父类和一个或多个子类。子类可以继承父类的属性和方法,并可以通过重写父类的方法来修改或扩展其功能。在普通的PHP继承中,如果我们想在子类中调用父类的方法,需要使用parent关键字来引用父

学会使用CSS选择器的基本语法 学会使用CSS选择器的基本语法 Jan 13, 2024 am 11:44 AM

掌握基本的CSS选择器语法,需要具体代码示例CSS选择器是前端开发中非常重要的一部分,它可以用来选择和修改HTML文档的各个元素。掌握基本的CSS选择器语法对于编写高效的样式表是至关重要的。本文将介绍一些常见的CSS选择器以及对应的代码示例。元素选择器元素选择器是最基本的选择器,可以通过元素的标签名来选择对应的元素。例如,要选择所有的段落(p元素),可以使用

乘方运算在C语言中的用法及语法 乘方运算在C语言中的用法及语法 Feb 18, 2024 pm 04:05 PM

C语言中乘方运算的语法和用法简介:在C语言中,乘方运算(poweroperation)是一种常见的数学运算,它用于计算一个数的幂。在C语言中,我们可以使用标准库函数或者自定义函数来实现乘方运算。本文将详细介绍C语言中乘方运算的语法和用法,并提供具体的代码示例。一、使用math.h中的pow()函数在C语言中,math.h标准库中提供了pow()函数,用于执

了解C语言的基本单位 了解C语言的基本单位 Mar 21, 2024 pm 05:36 PM

C语言作为一种广泛应用于系统编程和应用软件开发的编程语言,其基本单位主要包括变量、数据类型、运算符等。在学习和了解C语言的基础知识时,对这些基本单位的掌握尤为关键。本文将通过具体的代码示例来介绍C语言的基本单位,帮助读者更好地理解。首先,我们来看一下C语言中的变量。变量在C语言中用于存储数据,每个变量都有自己的数据类型,可以存储不同类型的数据,比如整数、浮点

See all articles