XML详解一XML语法
XML指可扩展标记语言很类似 HTML,被设计用来传输和存储数据而非显示数据,XML标签没有被预定义需要自行定义标签,标签具有自我描述性,同时XML也是 W3C 的推荐标准。
先来写一个XML脚本demo.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 版本1.0 编码utf-8 -->
<book >
<title>xml</title>
<description>xml可扩展标记语言</description>
<year>1998</year>
<price>30.00</price>
</book>
在浏览器运行demo.xml:

1.如上图就是一个XML文件,XML是纯文本的,标签不像HTML是预定义标签,需要自行定义如:<note></note>、<标签></标签>、<qwer></qwer>,注意:XML的根标签(最外层标签)有且只能有一对!也就是上面代码的<book></book>标签
2.XML的标签可以是中文,也可以是字母,对大小写敏感推荐小写,这里需要注意一下的是XML的语法严格,标签必须成对出现即有开始又有结束,比如<title>xml 如果没有闭合标签就会报错:

也有一种特殊的情况就是自闭和标签,如:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 版本1.0 编码utf-8 -->
<book >
<title>xml</title>
<description>xml可扩展标记语言</description>
<year>1998</year>
<price>30.00</price>
<a /> <!-- 自闭和标签,浏览器可以正常解析-->
</book>
3.XML标签可以嵌套但是不能交叉嵌套:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 正确嵌套 -->
<book >
<title>
<description>xml可扩展标记语言</description>
</title>
</book> <!-- 错误嵌套 -->
<?xml version="1.0" encoding="UTF-8"?>
<book >
<title><description></title> xml可扩展标记语言</description>
</book>
4.XML标签也可以拥有属性,属性必须有值并加引号:
<?xml version="1.0" encoding="UTF-8"?>
<book >
<!-- 属性名自定义,必须有值并加引号,推荐使用小写 -->
<title book_id="1">xml</title>
<description>xml可扩展标记语言</description>
<year>1998</year>
<price>30.00</price>
</book>
5.XML中实体引用:
| < | < | 小于 |
| > | > | 大于 |
| & | & | 和号 |
| ' | ' | 单引号 |
| " | " | 引号 |
在XML中如果你把字符 <放在 XML 元素中会发生错误,如:<description>5 < 10</description>,这是因为解析器会把<当作新元素的开始,为了避免这种错误就需要使用实体引用:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<title>xml</title>
<description>5 < 10</description>
</book>
在 XML 中只有字符 < 和 &"确实是非法的,但是用实体引用来代替它是一个好习惯
6.XML CDATA
如果一大段内容包含字母数字汉字特殊符号等等,为了可以正常解析此时只使用实体引用并不现实,就需要用到<![CDATA[]]>:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<title>xml</title>
<content><![CDATA[一大段内容包含123qwer&<<<*;/]]></content>
</book>
这样在上面的代码中,解析器会忽略 CDATA 部分中的所有内容而直接原模原样显示
注意注意注意:在 XML中换行会被保存视为一个节点,所以正常的xml文件都是一行搞定:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore><book book_id="1"><title>php</title><author><![CDATA[PHP是世界上最好的编程语言.emmm...]]></author></book></bookstore>
XML详解一XML语法的更多相关文章
- XML详解二XML的解析与创建
XML用来传输和存储数据,如何解析获取到的XML文本呢? 一.解析XML 创建demo.xml文件: <?xml version="1.0" encoding="U ...
- Maven配置文件setting.xml详解
注:本文来源于:大话JAVA的那些事 <Maven配置文件setting.xml详解> <?xml version="1.0" encoding="UT ...
- Web.xml详解(转)
这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢迎大家一起讨论. ---题记 一. Web.xml详解: (一) web.xml加载过程(步骤) 首 ...
- C#中的Linq to Xml详解
这篇文章主要介绍了C#中的Linq to Xml详解,本文给出转换步骤以及大量实例,讲解了生成xml.查询并修改xml.监听xml事件.处理xml流等内容,需要的朋友可以参考下 一.生成Xml 为了能 ...
- logback的使用和logback.xml详解,在Spring项目中使用log打印日志
logback的使用和logback.xml详解 一.logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch.它当前分 ...
- 转载 logback的使用和logback.xml详解 http://www.cnblogs.com/warking/p/5710303.html
logback的使用和logback.xml详解 一.logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch.它当前 ...
- MyBatis Mapper XML 详解
MyBatis Mapper XML 详解 MyBatis 真正的力量是在映射语句中.这里是奇迹发生的地方.对于所有的力量,SQL 映射的 XML 文件是相当的简单.当然如果你将它们和对等功能的 JD ...
- Maven-pom.xml详解
(看的比较累,可以直接看最后面有针对整个pom.xml的注解) pom的作用 pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵 ...
- Spring配置文件详解 – applicationContext.xml文件路径
Spring配置文件详解 – applicationContext.xml文件路径 Java编程 spring的配置文件applicationContext.xml的默 ...
随机推荐
- 3.django Model
django ORM基本配置 django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表 1.修改project数据库配置 (1)settigs.py里面 默认 DAT ...
- 1.Django安装与运行
Django基本配置 Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Se ...
- ASP.NET Core 2.0 MVC项目实战
一.前言 毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的.之前实习时主要是做.NET的B/S架构的项目,主要还是 ...
- Nginx学习系列一搭建环境
1.Win10下安装vmware14虚拟机软件 官方下载地址 全程next,输入key,激活即可. 2.在虚拟机中安装Linux服务器环境,操作系统为Centos7 继续下一步,安装完成! 3.下载C ...
- 从零开始学习PYTHON3讲义(八)列表类型跟冒泡排序
<从零开始PYTHON3>第八讲 前面我们见过了不少的小程序,也见过了不少不同类型的变量使用的方法.但目前我们涉及到的,还都是单个的变量和单个的立即数.以变量来说,目前我们见到的,基本都 ...
- Java的类加载器种类(双亲委派)
Java类加载器采用双亲委派模型: 1.启动类加载器:这个类加载器负责放在<JAVA_HOME>\lib目录中的,或者被-Xbootclasspath参数所指定的路径中的,并且是虚拟机识别 ...
- ubuntu 修改网卡名称 更改设备网卡名称 修改eno16777736为eth0 ubuntu 15.10网卡名称为eno16777736
ubuntu linux 进入root用户,管理员模式 编辑这个文件需要管理员模式 在GRUB_CMD_LINUX后面增加图中所示 看到这个地方了没,有提示信息的,想要改变这个文件,记得运行 upda ...
- linux-2.6.18源码分析笔记---进程
一.进程重要字段描述 在目录include\linux\sched.h下定义了进程描述符task_struct,关注如下字段: 进程状态 volatile long state:表示进程状态,在该文件 ...
- 基于React-Native0.55.4的语音识别项目全栈方案
移动端的API能力验证方案与PC端不一样!不一样!!不一样!!! 即使需要使用的API都存在,也不一定能用,这一点和PC端是有很大区别的,国内的手机系统虽然都是基于Android,但几乎都会经过各大厂 ...
- SDWebImage源码解析
但凡经过几年移动开发经验的人去大公司面试,都会有公司问到,使用过哪些第三方,看过他们的源码嘛?而SDWebImage就是经常被面试官和应聘者的提到的.下面将讲述SDWebImage的源码解析以及实现原 ...