用R解析XML(一)

    我们知道在网页中解析数据时经常用到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。所有这些都是我们想要解析出的数据。

     元素和属性的区别是数据应尽量用元素来表示,数据之外的信息可以用元素表示,如元数据(有关数据的数据)可以用属性存储,数据本身还是应表示为元素。 

原文地址:https://www.cnblogs.com/thinkers-dym/p/4070316.html