最近接触到了XML解析的相关内容,所以对其进行了相关的了解和学习,本篇文章就是对XML数据格式进行简单介绍。
我们先来看一组XML数据。
<?xml version="1.0" encoding="UTF-8"?>
<!-- 根元素 -->
<persons>
<person>
<name nn="li">李明</name>
<age>19</age>
<sex>女</sex>
</person>
<person>
<name nn="wang">王华</name>
<age>21</age>
<sex>男</sex>
</person>
<person>
<name nn="zhang">张三</name>
<age>21</age>
<sex>男</sex>
</person>
</persons>
在这组数据中我们,头部的version代表XML的版本号,这个文档的版本号为1.0(貌似XML从出现开始就一直是这个版本),encoding表示所用的编码,这里采用的是UTF-8。在头部的下方为数据部分。
XML数据相对于其他语言来说,我们可以灵活的定义标签,并且标签是成对出现的,如果对应数据库的话,我们可以理解为每对标签随代表的是一行数据,而标签内容的子标签则是这行数据的每一列。当然,层次多的话这个形容就有点牵强了,但不影响理解是吧。
我们往往成最外层的标签为根,也就是ROOT,然后往内层去就是根的节点。在这个XML数据中,我们的根是persons,由命名可以看出,其保存的是人员的相关信息,这里persons可以理解为数据库里的一张表。而persons标签内的三组person标签所代表的则为persons表内的三行数据,每行数据内包含名称,年龄,性别等信息。
其实XML数据理解了也就是这样,通过层层标签的嵌套来保存数据,就好像java中定义的类的不断嵌套一样。按照如此理解,不妨我们来写一个XML数据文件。
我们在文件中保存两本书的信息,首先我们先建立根节点ROOT
<BOOKS>
...
</BOOKS>
然后在根节点中添加书籍,因为书籍是图书集合的个体,因此,book为books的子节点。
<BOOKS>
<book>
</book>
<book>
</book>
</BOOKS>
现在我们为每本书添加详细信息,如书名,作者等信息。因为这些信息是书籍的特征属性,因此应该作为book的子节点。
<BOOKS>
<book>
<name>追风筝的人</name>
<author>卡勒德·胡塞尼</author>
</book>
<book>
<name>空山</name>
<author>阿来</author>
</book>
</BOOKS>
这样我们的信息就保存好了,那么如果有附加信息呢,比如别称?比如,卡勒德·胡塞尼的别称为胡塞尼,我们怎么保存呢?看下面的代码:
<BOOKS>
<book>
<name>追风筝的人</name>
<author nn="胡塞尼">卡勒德·胡塞尼</author>
</book>
<book>
<name>空山</name>
<author>阿来</author>
</book>
</BOOKS>
对的,就是这样,我们在对应的标签内添加新的标记,来保存并列的属性,我这里用的是nn,当然你可以随意设置。