R语言 使用XML文件

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程