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

摘要:
因为我发现ROS系统中有很多程序,都是XML。当然,我看不见他们,所以我来补课。目前,我只需要能够读或写几行,所以描述不太详细。

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

如何识别XML?

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

<user>

</user>

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

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

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

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

XML的优缺点

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

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

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

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

XML语法的详解

概念

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

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

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

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

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

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

 整体结构

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

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

意思就是说,

<?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的学习笔记(一)————基本语法和规范第5张

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

 属性

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

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

字符数据

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

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

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

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

 <dept/>
</root>

 CDATA标记

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

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

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

 <dept/>
</root>

声明语句

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

记住就行了!

注释

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

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

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

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

免责声明:文章转载自《XML的学习笔记(一)————基本语法和规范》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇EtherCAT 要点postgresql 查看用户名下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C语言两个libxml2库使用的问题

最近使用libxml2想做点东西,翻看一些example后还是有些疑问,去segmentfault问了下,感谢@pingjiang的热心解答,问题解决,记录如下 (一)如下是一个XML文件,p为根结点 <p> <one>1</one> <two>2</two> <th...

C#(4):XML序列化

一、使用 System.Xml.Serialization类 1、定义元数据 引入System.Xml.Serialization命名空间。 XML序列化常用属性: XmlRoot XmlType XmlText XmlEnum [Serializable] [XmlRoot] public class Product { public int...

使用阿里云的maven私服的setting.xml, 提高maven项目jar下载速度

下载:  http://files.cnblogs.com/files/007sx/settings.zip 然后替换自己原本maven的配置文件。 如下载失败,可内容替换: <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/S...

帝国CMS 复制word里面带图文的文章,图片可以直接显示

1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存的情况 本文使用的后台是Java。前端为Jsp(前端都一样,后台如果语言不通得自己做 Base64编码解码) 因为公司业务需要支持IE8 ,网上其实有很多富文本框,效果都很好。 例如www.wangEditor.com  但试了一圈都不支持IE8 。 所...

C# 使用XML序列化对象(二)

在C# 使用XML序列化对象(一)中描述了使用XML序列化对象的最简单的实现。 现在我们来看看稍微复杂一点的情况: 现有两个类:A和B,B是A的派生类,如下所示: public classA { public inta { get; set; }...

C# XELEMENT 解析xml文件(字符串)

XElement 解析xml字符串,或者xml文件方法 xml文件 1 <?xml version="1.0" encoding="utf-8"?> 2 <Request> 3 <Header> 4 <SourceSystem>02</SourceSystem> 5 <...