R语言 使用XML文件
XML是可扩展标记语言(Extensible Markup Language)的缩写,由标记标签组成,其中每个标签说明了XML文件中特定属性所携带的信息。我们可以使用R提供的XML包来处理XML文件。该包必须使用以下命令明确安装。
install.packages("XML")
创建XML文件
我们将使用下面的XML文件’sample.xml’来查看可以对该文件进行的各种操作,就可以创建XML文件,该文件中包含了各自的标签,包含了有关内容的信息。
<RECORDS>
<STUDENT>
<ID>1</ID>
<NAME>Alia</NAME>
<MARKS>620</MARKS>
<BRANCH>IT</BRANCH>
</STUDENT>
<STUDENT>
<ID>2</ID>
<NAME>Brijesh</NAME>
<MARKS>440</MARKS>
<BRANCH>Commerce</BRANCH>
</STUDENT>
<STUDENT>
<ID>3</ID>
<NAME>Yash</NAME>
<MARKS>600</MARKS>
<BRANCH>Humanities</BRANCH>
</STUDENT>
<STUDENT>
<ID>4</ID>
<NAME>Mallika</NAME>
<MARKS>660</MARKS>
<BRANCH>IT</BRANCH>
</STUDENT>
<STUDENT>
<ID>5</ID>
<NAME>Zayn</NAME>
<MARKS>560</MARKS>
<BRANCH>IT</BRANCH>
</STUDENT>
</RECORDS>
读取XML文件
安装完软件包后,可以读取XML文件,然后用 xmlparse() 函数进行解析,该函数将XML文件名作为输入,以列表的形式打印出文件内容。该文件应该位于当前工作目录中。还应该安装一个名为 “方法 “的额外软件包。下面的代码可以用来读取文件 “sample.xml “的内容。
# loading the library and other important packages
library("XML")
library("methods")
# the contents of sample.xml are parsed
data <- xmlParse(file = "sample.xml")
print(data)
输出
1
Alia
620
IT
2
Brijesh
440
Commerce
3
Yash
600
Humanities
4
Mallika
660
IT
5
Zayn
560
IT
提取关于XML文件的信息
XML文件可以被解析,并且可以对其各个部分进行操作。在R中,有各种内置的功能,可以提取与文件相关的节点信息,获得文件中的节点数量,以及文件中某些特定节点的具体属性。
# loading the library and other important packages
library("XML")
library("methods")
# the contents of sample.xml are parsed
# Load the packages required to read XML files.
library("XML")
library("methods")
# Give the input file name to the function.
res <- xmlParse(file = "sample.xml")
# Extract the root node.
rootnode <- xmlRoot(res)
# number of nodes in the root.
nodes <- xmlSize(rootnode)
# get entire contents of a record
second_node <- rootnode[2]
# get 3rd attribute of 4th record
attri <- rootnode[[3]][[4]]
cat('number of nodes: ', nodes)
print ('details of 2 record: ')
print (second_node)
# prints the marks of the fourth record
print ('3rd attribute of 4th record: ', attr)
输出
[1] number of nodes: 5
[2] details of 2 record:
$STUDENT
2
Brijesh
440
Commerce
[3] 3rd attribute of 4th record: 660
将XML转换为数据框架
为了提高数据的可读性,可以将XML数据转换为由行和列组成的数据框架。R包含一个内置的函数xmlToDataFrame(),它包含作为输入的XML文件,并以数据框架的形式输出相应的数据。这模拟了对大量数据的简单处理和加工。
# Load the required packages.
library("XML")
library("methods")
# Convert the input xml file to a data frame.
dataframe <- xmlToDataFrame("sample.xml")
print(dataframe)
输出
ID NAME MARKS BRANCH
1 1 Alia 620 IT
2 2 Brijesh 440 Commerce
3 3 Yash 600 Humanities
4 4 Mallika 660 IT
5 5 Zayn 560 IT