XML语法

XML文档结构详解
本文介绍了XML文档的基本组成部分,包括文档声明、元素、属性、注释等内容,并详细解释了各部分的作用及使用规范。

一、XML文档的组成

一个XML文件一般由以下几部分组成:

  • 文档声明
  • 元素
  • 元素的属性
  • 注释
  • CDATA区
  • 特殊字符
  • 处理指令(PI:Processing Instruction)

二、文档声明

  • 在编写XML文档时,需要先使用文档声明来声明XML文档。且必须出现在文档的第一行
  • 最简单的语法:<?xml version="1.0"?>
  • encoding属性说明文档所使用的字符编码,默认为UTF-8保存在磁盘上的文件编码要与声明的编码一致。
  • 如:<?xml version="1.0" encoding="GB2312"?> 告诉浏览器用GB2312格式解析存储在磁盘上的xml文件。
  •  用standalone属性说明文档是否独立,即是否依赖其他文档。
  • 如<?xml version="1.0" standalone="yes"?>

三、元素

  • XML元素指XML文件中出现的标签,一个标签分为起始和结束标签(不能省略)。一个标签有如下几种书写形式:

包含标签主体:<mytag>some content</mytag>

不含标签主体:<mytag/>

  • 一个标签中可以嵌套若干子标签,但所有标签必须合理的嵌套,不允许有交叉嵌套。

<mytag1><mytag2></mytag1></mytag2>     WRONG

  • 一个XML文档必须有且仅有一个根标签,其他标签都是这个根标签的子标签或孙标签。
  • XML中不会忽略主体内容中出现的空格和换行。注:由于在XML中,空格和换行都作为原始内容被处理,所以,在编写XML文件时,使用换行和缩进等方式来让原文件中的内容清晰可读的“良好”书写习惯可能要被迫改变。
  • 元素命名规范:元素(标签)的名称可以包含字母、数字、减号、下划线和英文句点,但必须遵循下面的一些规范:

严格区分大小写:<P> <p>

只能以字母或下划线开头

不能以xml(或XML、Xml等)开头 ---- W3C保留日后使用

名称字符之间不能有空格或制表符

名称字符之间不能使用冒号

四、元素的属性

  • 一个元素可以有多个属性,每个属性都有它自己的名称和取值,例如:<mytag name="value" .../>
  • 属性值一定要用引号(双引号或单引号)引起来
  • 属性名称的命名规范与元素的命名规范相同
  • 元素中的属性是不允许重复的
  • 在XML技术中,标签属性所代表的信息也可以被改成用子元素的形式来描述,例如:

<mytag>

          <name>

                       <firstName/>

                       <lastName/>

          </name>

</mytag>

五、注释

  • XML中的注释语法为:<!-- 这是注释 -->
  • 注意:1. XML声明之前不能有注释。2. 注释不能嵌套。

六、CDATA区

  • CDATA是Character Data的缩写
  • 作用:把标签当做普通文本内容
  • 语法:<![CDATA[内容]]>
  • 举例:<![CDATA[<student>www.student.com</student>]]> 红色部分被当做普通文本而不是标签

七、特殊字符

对于一些特殊字符,若要在元素主体内容中显示,必须进行转义。

八、处理指令

  • 处理指令,简称PI(Processing Instruction)
  • 作用:用来指挥软件如何解析XML文档
  • 语法:必须以"<?"作为开头,以"?>"作为结尾
  • 常用处理指令:

XML声明:<?xml version="1.0" encoding="GB2312"?>

xml-stylesheet指令:

作用:指示XML文档所使用的CSS样式XSL。

<?xml-stylesheet type="text/css" href="some.css"?>

注:对中文命名的标签元素不起作用

九、XML与HTML对比总结

  • HTML中的标记是用来显示数据的,而XML中的标记用来描述数据的性质和结构。
  • HTML是不区分大小写的,而XML是严格区分大小写的。
  • HTML可以有多个根元素,而XML有且只能有一个根元素。
  • HTML中,属性值的引号是可用可不用的,而XML中,属性值必须放在引号中。
  • HTML中,空格是可用自动过滤的,而XML中,空格等部分则不会自动删除。
  • HTML中的标记是预定义的,而XML中的标记是可以随便定义的,并且可扩展。
### 学习 XML 语法 #### 定义与特性 XML(可扩展标记语言)是一种用于传输和存储数据的简单格式。它具有良好的可扩展性,能够实现内容与形式的有效分离,并严格遵循语法要求[^3]。 #### 正规 XML 文档的要求 为了使 XML 文档成为格式正规文档,需满足特定条件: - **声明语句**:每份 XML 文件应以 `<?xml version="1.0" encoding="UTF-8"?>` 开始来指定版本号以及字符编码方式。 - **唯一根元素**:整个文档必须包含在一个唯一的顶级标签之内;此标签被称为根节点。 - **大小写敏感**:所有的标签名称都是区分大小写的。 - **属性值加引号**:当定义带有属性的标签时,这些属性应当被双引号包围起来表示其值。 - **闭合所有标签**:对于每一个开启状态下的起始标签 `<tag>` 都应该存在相应的结束标签 `</tag>` 或者采用自封闭的形式如 `<br />`. - **正确嵌套子元素**:内部层次结构中的各个组件要按照正确的顺序排列并相互匹配[^2]. #### 实际应用案例 在实际开发过程中,可以利用专门工具或者库函数解析处理 XML 数据流。例如,在浏览器环境中可以通过内置 API 将 XML 转换成易于操作的数据模型——DOM对象树形结构,进而借助 JavaScript 进行各种交互逻辑的设计[^1]。 此外,一些新兴技术也采用了基于 XML 的解决方案,比如 xml-agent 提供了一个创新性的框架让开发者构建支持 XML 协议交流的人工智能代理程序,适用于多种场合下生成标准化的消息体或是执行复杂的业务流程控制任务[^4]。 ```javascript // 使用JavaScript获取XML文件的内容 function loadXMLDoc(filename){ var xmlDoc; if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else{// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET",filename,false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; document.getElementById("myDiv").innerHTML= xmlDoc.getElementsByTagName("TITLE")[0].childNodes[0].nodeValue; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值