📜  在 R 编程中使用 XML 文件

📅  最后修改于: 2022-05-13 01:54:47.751000             🧑  作者: Mango

在 R 编程中使用 XML 文件

XML是Extensible Markup Language的缩写,由标记标签组成,每个标签都说明了XML文件中特定属性所携带的信息。我们可以使用 R 提供的 XML 包来处理 XML 文件。必须使用以下命令显式安装该包:

install.packages("XML")

创建 XML 文件

可以通过使用包含有关内容的信息的相应标签保存数据并使用“.xml”保存数据来创建 XML 文件。
我们将使用以下 XML 文件“sample.xml”来查看可以对该文件执行的各种操作:

HTML

  
      1
      Alia
      620
      IT
  
  
      2
      Brijesh
      440
      Commerce
   
  
      3
      Yash
      600
      Humanities
   
  
      4
      Mallika
      660
      IT
   
  
      5
      Zayn
      560
      IT
   


Python3
# 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)


Python3
# 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)


Python3
# Load the required packages.
library("XML")
library("methods")
 
# Convert the input xml file to a data frame.
dataframe <- xmlToDataFrame("sample.xml")
print(dataframe)


读取 XML 文件

安装包后可以读取 XML 文件,然后使用xmlparse()函数对其进行解析,该函数将 XML 文件名作为输入,并以列表的形式打印文件内容。该文件应位于当前工作目录中。还应该安装一个名为“methods”的附加包。以下代码可用于读取文件“sample.xml”的内容。

Python3

# 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中有各种内置函数,用于提取与文件关联的节点的信息,获取文件中的节点数,以及文件中某些特定节点的特定属性。

Python3

# 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 文件并以数据框的形式输出相应的数据。这模拟了对大量数据的轻松处理和处理。

Python3

# 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