搜索
首页后端开发XML/RSS教程疯狂XML学习笔记(2)-------------格式要求

Xml的语法

         一个XML文件分为如下几部分内容:

     文档声明

     元素

     属性

     注释 

     CDATA区、特殊字符

     处理指令(processing instruction

Xml的声明

最简单声明

 307f197fa35495e5bd15705cfb261526

Encoding属性:字符编码如果没有指定默认的是UTF-8编码

常见的字符集

简体中文:GBK GB2312

繁体中文: BIG5

西欧字符:ISO8859-1

通用的国际编码:Unicode  UTF-8

演示案例:

  44268761adfa814cf615c226dea79439

c14d22ff3ccf1f46261d33e09e715fd84cd913b7f4ffcc7b6b86a519dbdd50c8

引起错误的原因是:编码的错误




解码成字符

 字符集错误时的xml文档




新建是一个.txt文档

保存的是.xml UTF-8

默认的编码ANSI

中国


写入到硬盘

编码成二进制码

00 11


磁盘文件

 

Standalone:指定该文档是否需要引用其它资源,属性值只有:yesno

Yes:独立      No:不独立

 

XML文件和HTML文件一样,实际上是一个文本文件。

显然大家立刻就会明白,创建XML文件最普通的工具和HTML一样,就是"记事本"了。

除了"记事本"之外,当然还有一些更加方便的工具,如XML Notepad、XML Pro、CLIP!XML Editor等,

这些工具的一大特点是:能够检查你所建立的XML文件是否符合XML规范。不过,现在这些工具都只有英文版的,并且需要付费使用。

当然,你仍然能够使用FrontPage、DreamWeaver等工具,不过使用起来不是很方便。

随着XML的逐渐普及,相信在不久后,也会出现非常好用的创建XML文件的工具。
现在我们暂且使用"记事本"来创建我们的XML文件吧。先看一个XML文件:

 
例1


〈?xml version="1.0" encoding="gb2312" ?〉
〈参考资料〉
〈书籍〉
〈名称〉XML入门精解〈/名称〉
〈作者〉张三〈/作者〉
〈价格 货币单位="人民币"〉20.00〈/价格〉
〈/书籍〉
〈书籍〉
〈名称〉XML语法〈/名称〉
〈!--此书即将出版--〉
〈作者〉李四〈/作者〉
〈价格 货币单位="人民币"〉18.00〈/价格〉
〈/书籍〉
〈/参考资料〉

 


这是一个典型的XML文件,编辑好后保存为一个以.xml为后缀的文件。我们可以将此文件分为文件序言(Prolog)和文件主体两个大的部分。

在此文件中的第一行即是文件序言。该行是一个XML文件必须要声明的东西,而且也必须位于XML文件的第一行,它主要是告诉XML解析器如何工作。

其中,version是标明此XML文件所用的标准的版本号,必须要有;encoding指明了此XML文件中所使用的字符类型,可以省略,在你省略此声明的时候,后面的字符码必须是Unicode字符码(建议不要省略)

。因为我们在这个例子中使用的是GB2312字符码,所以encoding这个声明也不能省略。在文件序言部分还有一些声明语句,我们在后面给予介绍。

 


文件的其余部分都是属于文件主体,XML文件的内容信息存放在此。

我们可以看到,文件主体是由开始的〈参考资料〉和结束的〈/参考资料〉控制标记组成,这个称为XML文件的"根元素";〈书籍〉是作为直属于根元素下的"子元素";在〈书籍〉下又有〈名称〉、〈作者〉、〈价格〉这些子元素。货币单位是〈价格〉元素中的一个"属性","人民币"则是"属性值"。


首先,XML文件的第一行必须是声明该文件是XML文件以及它所使用的XML规范版本。在文件的前面不能够有其它元素或者注释。


第二,在XML文件中有且只能够有一个根元素。我们的第一个例子中,〈参考资料〉... 〈/参考资料〉就是此XML文件的根元素。


第三,在XML文件中的标记必须正确地关闭,也就是说,在XML文件中,控制标记必 须有与之对应的结束标记。如:〈名称〉标记必须有对应的〈/名称〉结束标记,不像HTML,某些标记的结束标记可有可无。如果在XML文件中遇到自成一个单元的标记,就是类似于HTML 中的〈img src=http://www.php.cn/〉的这些没有结束标记的时候,XML把它称为"空元素",必须用这样的写法:〈空元素名/〉,如果元素中含有属性时写法则为:〈空元素名 属性名="属性值"/〉。


第四,标记之间不得交叉。在以前的HTML文件中,可以这样写:
〈B〉〈H〉XXXXXXX〈/B〉〈/H〉,〈B〉和〈H〉
标记之间有相互重叠的区域,而在XML中,是严格禁止这样标记交错的写法,标记必须以规则性的次序来出现。


第五,属性值必须要用" "号括起来。如第一个例子中的"1.0"、"gb2312"、"人民币"。都是用" "号括起来了的,不能漏掉。


第六,控制标记、指令和属性名称等英文要区分大小写。与HTML不同的是,在HTML中, 类似〈B〉和〈b〉的标记含义是一样的,而在XML中,类似〈name〉、〈NAME〉或〈Name〉这样的标记是不同的


第七,我们知道,在HTML文件中,如果我们要浏览器原封不动地将我们所输入的东西显示出来,可以将这些东西放到〈pre〉〈/pre〉或者〈xmp〉〈/xmp〉标记中间。这对于我们创建HTML教学的网页是必不可少的,因为网页中要显示HTML的源代码。而在XML中,要实现这样的功能,就必须使用CDATA标记。在CDATA标记中的信息被解析器原封不动地传给应用程序,并且不解析该段信息中的任何控制标记。CDATA区域是由:"〈![CDATA["为开始标记,以">〉"为结束标记。例如:例2中的源码,除了"〈![CDATA["和">〉"符号,其余的内容解析器将原封不动地交给下游的应用程序,即使CDATA区域中的开始和结尾的空白以及换行字符等,都同样会被转交(注意CDATA是大写的字符)。


 

 

 

Xml元素的基本规则

   元素是xml文档的基本单元,xml文档就是一个一个层层嵌套的元素组成的。整个的xml文档从根元素开始,根元素包含若干个子元素,而每个子元素又可以包含若干个子元素,从而可以组成一个xml文档。

Xml标签语法:

  1Xml的标签分为两类:

     单标记:e2884bd8aa1e645b5d7ff61553422cc6

     双标记:c14d22ff3ccf1f46261d33e09e715fd84cd913b7f4ffcc7b6b86a519dbdd50c8

  2xml标签的要求:

      1、标签名可以有字母(包括非西欧字符)、数字、下划线(_)、中划线(-)、冒号(:)和点号(.)组成,但不能以数字、中划线和点号开头。

2、标签名不能包含43ea2b066e268a9e20b676cd21d80b62、,、$等符号

3、标签名种尽量不要出现英文的冒号(:),除非在使用命名空间。

4、标签名不能以字符xmlXML等任意大小写组合开始。

5、标签名不能包含空格。

6、标签名区分大小写

3xml标签嵌套子元素:xml允许深度嵌套子元素,只要保证元素之间合理的嵌套即可.而且xml元素可以嵌套多个重名的子元素,这多个子元素之间是有序的。

    第一个:xml

c14d22ff3ccf1f46261d33e09e715fd8

 849ecb920bc434dfbae6746221f149da

     69bf1dd76ff4815d1960c18119e882cb

     3710dd4e6b0f08bf9a2409c06ae06e923a34c0ea669bfdcc0228b60b6ca83292

     3710dd4e6b0f08bf9a2409c06ae06e923a34c0ea669bfdcc0228b60b6ca83292

 5a19f130690ac1d071f74d245279b970

4cd913b7f4ffcc7b6b86a519dbdd50c8

  第二个xml

c14d22ff3ccf1f46261d33e09e715fd8

 849ecb920bc434dfbae6746221f149da

     3710dd4e6b0f08bf9a2409c06ae06e923a34c0ea669bfdcc0228b60b6ca83292

     3710dd4e6b0f08bf9a2409c06ae06e923a34c0ea669bfdcc0228b60b6ca83292

    69bf1dd76ff4815d1960c18119e882cb

 5a19f130690ac1d071f74d245279b970

4cd913b7f4ffcc7b6b86a519dbdd50c8

4、空元素:空元素不可以接受子元素,也不可以接受字符串内容。

     第三个xml

      463aef0d2da08708f472268a99530dbe

         8a11bc632ea32a57b3e3693c7987c420redarmydf406f776eecbaf16b62325323196f14

         e69ec73c61052262ebce3a853bcad4b6 :备注:空元素但可以接受属性,而且可以接受多个属性

      0f6fa65eb6c7f3ed4374d12bf4ac01bd

    463aef0d2da08708f472268a99530dbe

         8a11bc632ea32a57b3e3693c7987c420redarmydf406f776eecbaf16b62325323196f14

         b589d893b57b86314aa1904b5daea7841de6d7a1654980629dac47d54ddaac63 :备注它包好的是一个空格空格也是字符

      0f6fa65eb6c7f3ed4374d12bf4ac01bd

例如空元素接受属性:

  06f9063201224c5ea2c737869b78b220

5、字符数据

   463aef0d2da08708f472268a99530dbe

      2c6008b0e56443c91d19286e6d5aeb74Struts2开发详解1d3f22abb3651fd0d3b978b732f443e5

      2c6008b0e56443c91d19286e6d5aeb74

         Struts2开发详解

      1d3f22abb3651fd0d3b978b732f443e5

   0f6fa65eb6c7f3ed4374d12bf4ac01bd

  对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理

 如果文本字符中包含了一些特殊的字符,例如9916825e1251ffb5610956d1d0de7076

 

        ae0dad9014289c6d12010d8d7c16d4801+3e9fae4ba621339ac778d677fd6c1e93e

   f0f56cc353d60613bb77ad77dc4a2b71

代表的是文本字符串中包含了特殊的字符

 

有以下两种方法解决:

1、 使用实体引用:用另一个特殊符号代替这些特殊符号

2、使用CDATA标记:将整个文档定义成字符串。

1、  使用实体引用

        44268761adfa814cf615c226dea79439

  a30d83af1c24e4dd3fb885081ed8bb3c

        ae0dad9014289c6d12010d8d7c16d4801+3&6ccdf030973307f116f98ffdd41846a0

  f0f56cc353d60613bb77ad77dc4a2b71

上面的红色的<产生了干扰

解决如下:

 44268761adfa814cf615c226dea79439

  a30d83af1c24e4dd3fb885081ed8bb3c

        ae0dad9014289c6d12010d8d7c16d4801+3<6a7f9fe91d91e1c9e48986c28ae44ee0d

      f0f56cc353d60613bb77ad77dc4a2b71

2、  使用CDATA标记

在特殊标记CDATA,所有的特殊字符,甚至是有效的元素都将被当成简单的字符串处理。实体引用也会失去作用,变成直接的文本。

CDATA的语法格式如下:

 f4826fd78589c258f2dd0a4545d2f42c

44268761adfa814cf615c226dea79439

  a30d83af1c24e4dd3fb885081ed8bb3c

        ae0dad9014289c6d12010d8d7c16d480

             da7841e53a5ce2f4dc6d7ca7dadefd0f

           a7f9fe91d91e1c9e48986c28ae44ee0d

  f0f56cc353d60613bb77ad77dc4a2b71

    备注:由于xml文档根本不会对CDATA标记内容进行任何解析,因此在CDATA内可以放置任何内容,其中的内容永远不会出错。

1、  注释

Xml文档还可以加入解释用的字符数据,这些解释用的字符串不会被xml解析器处理。这些解释用的文本称为注释。Xml的文档注释与html完全一致。

Xml注释的语法格式如下:

1eaba07352fc01f0054473911b2e49d9

Xml的注释允许包含元素和标签。

注意:

1、  Xml的注释不能够放在标签体内。

2、  不要把xml文档放在xml文档声明之前  xml文档的声明永远在第一行

3、  不在注释中使用双中划线(--)

…..

2、  处理指令

处理指令,简称PI processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。

处理指令用于给处理xml文档的应用程序提供信息,告诉处理程序应该如何处理该文档。一个完备的xml文档的处理程序,可以读取xml文档的处理指令,并根据处理指令进行相应处理,或将它传给下一个程序。

Xml处理指令的格式如下:

b13f7363c075454edd1d3b5d2beb4d6d

3、  属性

xml属性的特征:

1、  xml元素的属性必须有属性值,属性值必须用引号引起来。

2、  同一个xml元素里不能有多个同名的属性

3、  Xml元素里的多个属性之间没有先后顺序。

<book>
     <isbn>123456780</isbn>
     <book_name>Java讲义</book_name>
      <price>99</price>
</book>


比如说这个book本身就有 isbn  book_name price的属性

那么

<book isbn=”” book_name=”” price=””/>


Xml必须有一个根元素。

Xml文档的整体结构

1、  必须有一个根元素(有且只有一个)

2、  元素必须合理结束

3、  元素之间必须合理嵌套

4、  元素的属性必须有属性值

只要不满足上面的条件就是一个格式不良好的xml文档

只要满足上面的条件就是一个格式良好的xml文档

并且遵守了dtd或者schema就是一个有效的xml文档。

Xml文档是一种标准的结构化文档,可以转换成DOM(Document Object Model),其根节点对应DOM树的根节点。

<book>
    <computer>
       <name>网上介绍</name>
       <author>redarmy</author>
    </computer>
    <computer>
        <name>网上介绍</name>
       <author>redarmy</author>
    </computer>
</book>


 



book


computer


computer


………


computer


name


author

 

注意:

必须具有根标记且根标记必须唯一

开始标记和结束标记需配对使用

标记不能交错使用

空标记可写成“1683f6fca5b08e9b60abae0f29ff6fb4”的形式

标记对大小写敏感

以上就是疯狂XML学习笔记(2)-------------格式要求的内容,更多相关内容请关注PHP中文网(www.php.cn)!


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JSON,XML和数据格式:比较RSSJSON,XML和数据格式:比较RSSMay 02, 2025 am 12:20 AM

JSON、XML和RSS的主要区别在于结构和用途:1.JSON适用于简单数据交换,结构简洁,易于解析;2.XML适合复杂数据结构,结构严谨但解析复杂;3.RSS基于XML,用于内容发布,标准化但用途有限。

故障排除XML/RSS提要:常见的陷阱和专家解决方案故障排除XML/RSS提要:常见的陷阱和专家解决方案May 01, 2025 am 12:07 AM

XML/RSS订阅源的处理涉及解析和优化,常见问题包括格式错误、编码问题和元素缺失。解决方案包括:1.使用XML验证工具检查格式错误;2.确保编码一致性并使用chardet库检测编码;3.处理元素缺失时使用默认值或跳过该元素;4.使用高效解析器如lxml和缓存解析结果以优化性能;5.注意数据一致性和安全性,防止XML注入攻击。

解码RSS文档:阅读和解释提要解码RSS文档:阅读和解释提要Apr 30, 2025 am 12:02 AM

解析RSS文档的步骤包括:1.读取XML文件,2.使用DOM或SAX解析XML,3.提取标题、链接等信息,4.处理数据。RSS文档是一种基于XML的格式,用于发布更新内容,结构包含、和元素,适用于构建RSS阅读器或数据处理工具。

RSS和XML:Web联合组织的基石RSS和XML:Web联合组织的基石Apr 29, 2025 am 12:22 AM

RSS和XML是网络内容分发和数据交换的核心技术。RSS用于发布频繁更新的内容,XML用于存储和传输数据。通过实际项目中的使用示例和最佳实践,可以提高开发效率和性能。

RSS提要:探索XML的作用和目的RSS提要:探索XML的作用和目的Apr 28, 2025 am 12:06 AM

XML在RSSFeed中的作用是结构化数据、标准化和提供可扩展性。1.XML使得RSSFeed的数据结构化,便于解析和处理。2.XML提供了一种标准化的方式来定义RSSFeed的格式。3.XML的可扩展性使得RSSFeed可以根据需要添加新的标签和属性。

缩放XML/RSS处理:性能优化技术缩放XML/RSS处理:性能优化技术Apr 27, 2025 am 12:28 AM

处理XML和RSS数据时,可以通过以下步骤优化性能:1)使用高效的解析器如lxml提升解析速度;2)采用SAX解析器减少内存使用;3)利用XPath表达式提高数据提取效率;4)实施多进程并行处理提升处理速度。

RSS文档格式:探索RSS 2.0及以后RSS文档格式:探索RSS 2.0及以后Apr 26, 2025 am 12:22 AM

RSS2.0是一种开放标准,允许内容发布者以结构化的方式分发内容。它包含了丰富的元数据,如标题、链接、描述、发布日期等,使得订阅者能够快速浏览和访问内容。RSS2.0的优势在于其简洁和扩展性。例如,它允许自定义元素,这意味着开发者可以根据需求添加额外的信息,如作者、分类等。

理解RSS:XML观点理解RSS:XML观点Apr 25, 2025 am 12:14 AM

RSS是一种基于XML的格式,用于发布经常更新的内容。1.RSSfeed通过XML结构化组织信息,包括标题、链接、描述等。2.创建RSSfeed需按照XML结构编写,添加元数据如语言和发布日期。3.高级用法可包含多媒体文件和分类信息。4.调试时使用XML验证工具,确保必需元素存在且编码正确。5.优化RSSfeed可通过分页、缓存和保持结构简洁来实现。通过理解和应用这些知识,可以有效管理和分发内容。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器