XML的学习笔记(一)————基本语法和规范

题外:为什么我要学XML呢?因为发现ROS系统里面有好多程序,是XML的,当然,我看不到,所以就来补补课,因为暂时只要求能看懂,或能简单写几行,所以,记述的也就不是太详细了。

 

如何识别XML?

可以先介绍XML的一些简单的规则,XML本身就是一个文本文件,XML是通过标记来描述文件的,比如:

<user>

</user>

“user”这两个就是标记,注意标记有开头就有结尾,结尾就是在开头的前面加一个”/“。

可以描述其更描述的信息,比如想描述这个人的姓名和性别,那接着在标记里面再写就行了,格式相同

<user>
         <name>laotan</name>
         <gender></gender>
</user>

这就是一段XML的程序了,可以用来描述文档,当然还有具体的语法格式,只要类似于这种标记来写的,就是一个XML文件。

 

XML的优缺点

XML是纯文本形式的,在每个系统上,都是可以支持的,同时对语言也没有太多的要求,所以,ROS系统中有一些文档是XML格式的,而且是作为轻量级的数据存储来存在。当然,这种方式的确定也是显而易见的,要插入太多的标记,反而会是编程的效率变低。

最常用就是在配置文件里面使用了。

 

XML语法的详解

概念

标签:开始标签对应结束标签,中间的是子标签(“title” “author” “publish”)。

属性及属性值:”id“是标签的属性,一定要跟开始标签空一格,而且属性不以单独出现,属性都会有一个值,比如该例当中 id="001" 就有属性值。

文本:标签中间的内容就叫文本(PCDATA,文本字符串)(该例当中:“跟老谭学XML”等等就是文本)。

元素:最后一个就是元素的概念,这整块儿都可以称之为一个video元素。一个元素包含标签及文本,当然还有其属性,比如,上例整个是一个video元素,而下面就是一个title元素。

<title>跟老谭学XML</title>

 整体结构

什么叫:"有且仅有一个根元素"?

意思就是说,

<?xml version="1.0" ecoding="UTF-8"?>//这个是头文件先不用管
<user>
  <name>laotan</name>
  <gender></gender>
</user>

<dept>
</dept>

像这样的代码,就会报错,因为“user”和“dept”冲突了,要么把这两个再放到一个共同的根元素里面,要么删除掉一个。

<?xml version="1.0" ecoding="UTF-8"?>//这个是头文件先不用管
<root>
 <user>
   <name>laotan</name>
   <gender></gender>
 </user>

 <dept>
 </dept>
</root>

这样才正确,(我理解的啊,就是开始标签只能有一个,不能有多个,其它的就只能放到开始标签里面了)

那什么叫做:“空元素必须严格使用空元素语法”?

还以上面的那段代码为例,“dept”是没有内容的,那有固定的格式:

<dept/>

这样写的效果和原来写的那样效果一样。

 

还需要强调的是,属性必须要有值!即便没有也要写成

<name id="a" c="">laotan</name>

 

空白字符非常重要,一不小心就会让程序取错位置。

 

 元素命名

着重强调:开头不能是数字或者特殊字符;名字中不能出现冒号。

 

 属性

强调:推荐使用双引号。且属性不能重复。

 

字符数据

这是什么意思呢?如果你想表达一个“<书名>”这样的式子,系统会报错,因为"<"与"<>"系统分不清楚,故而用其他的实体引用来表述“<”这个符号就可以了。

<?xml version="1.0" ecoding="UTF-8"?>//这个是头文件先不用管
<root>
 <user>
   <name>
       laotan &It;书名&gt;
   </name>
   <gender></gender>
 </user>

 <dept/>
</root>

 

 CDATA标记

将那些有可能产生混淆的文本,放在CDATA所标记的文本里面,

<?xml version="1.0" ecoding="UTF-8"?>//这个是头文件先不用管
<root>
 <user>
   <name>
       laotan
       <![CDATA[
             <书名>
        ]]>
   </name>
   <gender></gender>
 </user>

 <dept/>
</root>

 

声明语句

记住就行了!

 

注释

 

 

 感谢:本次学习笔记都是从 http://e-learning.51cto.com/course/2905

《跟老谭学XML-新手入门基础知识》  

记述而来  感谢此教程对我学习的帮助!

posted @ 2017-09-13 10:32  恋.蛩音  阅读(1103)  评论(0编辑  收藏  举报