我们知道在网页中解析数据时经常用到XML的语法知识,因为数据的存储格式一般是XML的,所以学习XML的基本知识还是很有必要的。那么,什么是XML呢?XML的含义是可扩展标记语言(EXtensible Markup Language),是一种纯文本文件,语法类似html,被设计用来传输数据,而非展示数据的。在这里我们会介绍XML的最基本知识,以供R解析网页时使用。先看如下所示XML文件:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- Copyright w3school.com.cn --> <!-- W3School.com.cn bookstore example --> <bookstore name="bookstore"> <book category="children"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="web" cover="paperback"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> <book category="web"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> </bookstore>
第一行声明了xml的版本和编码方式,往下两行是注释。第四行<bookstore>是根元素,一个xml文件必须含有根元素,该元素是其他所有元素的父元素。该元素从<bookstore name="bookstore">开始,至</bookstore>关闭,每个元素都必须这样正确嵌套。中间的元素<book>是<bookstore>的子元素。那么什么是元素呢?就像是xml中的标签,如<bookstore> <book> <title> <author>等。xml文件以根元素为起始,父元素带子元素的方式,一层层展开,形成树状结构。下面这张图可以很好的解释上图的xml文件:
从上面的结构图可以看出,元素可以有属性,如<book>元素的属性category,可以有文本内容即真正的数据,如<price>元素包含的29.99。所有这些都是我们想要解析出的数据。
元素和属性的区别是数据应尽量用元素来表示,数据之外的信息可以用元素表示,如元数据(有关数据的数据)可以用属性存储,数据本身还是应表示为元素。