R语言 XML文件

Posted 方舟编译器开源

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言 XML文件相关的知识,希望对你有一定的参考价值。

XML是一种文件格式,它使用标准ASCII文本共享万维网,内部网和其他地方的文件格式和数据。它代表可扩展标记语言(XML)。类似于html它包含标记标签。但是与HTML中的标记标记描述页面的结构不同,在xml中,标记标记描述了包含在文件中的数据的含义。

您可以使用“XML”包读取R语言中的xml文件。此软件包可以使用以下命令安装。

install.packages("XML")

输入数据

通过将以下数据复制到文本编辑器(如记事本)中来创建XMl文件。使用.xml扩展名保存文件,并将文件类型选择为所有文件(*.*)。

<RECORDS>
<EMPLOYEE>
<ID>1</ID>
<NAME>Rick</NAME>
<SALARY>623.3</SALARY>
<STARTDATE>1/1/2012</STARTDATE>
<DEPT>IT</DEPT>
</EMPLOYEE>

<EMPLOYEE>
<ID>2</ID>
<NAME>Dan</NAME>
<SALARY>515.2</SALARY>
<STARTDATE>9/23/2013</STARTDATE>
<DEPT>Operations</DEPT>
</EMPLOYEE>

<EMPLOYEE>
<ID>3</ID>
<NAME>Michelle</NAME>
<SALARY>611</SALARY>
<STARTDATE>11/15/2014</STARTDATE>
<DEPT>IT</DEPT>
</EMPLOYEE>

<EMPLOYEE>
<ID>4</ID>
<NAME>Ryan</NAME>
<SALARY>729</SALARY>
<STARTDATE>5/11/2014</STARTDATE>
<DEPT>HR</DEPT>
</EMPLOYEE>

<EMPLOYEE>
<ID>5</ID>
<NAME>Gary</NAME>
<SALARY>843.25</SALARY>
<STARTDATE>3/27/2015</STARTDATE>
<DEPT>Finance</DEPT>
</EMPLOYEE>

<EMPLOYEE>
<ID>6</ID>
<NAME>Nina</NAME>
<SALARY>578</SALARY>
<STARTDATE>5/21/2013</STARTDATE>
<DEPT>IT</DEPT>
</EMPLOYEE>

<EMPLOYEE>
<ID>7</ID>
<NAME>Simon</NAME>
<SALARY>632.8</SALARY>
<STARTDATE>7/30/2013</STARTDATE>
<DEPT>Operations</DEPT>
</EMPLOYEE>

<EMPLOYEE>
<ID>8</ID>
<NAME>Guru</NAME>
<SALARY>722.5</SALARY>
<STARTDATE>6/17/2014</STARTDATE>
<DEPT>Finance</DEPT>
</EMPLOYEE>

</RECORDS>

读取XML文件

xml文件由R语言使用函数xmlParse()读取。它作为列表存储在R语言中。

# Load the package required to read XML files.
library("XML")

# Also load the other required package.
library("methods")

# Give the input file name to the function.
result <- xmlParse(file = "input.xml")

# Print the result.
print(result)

当我们执行上面的代码,它产生以下结果 -

1
Rick
623.3
1/1/2012
IT


2
Dan
515.2
9/23/2013
Operations


3
Michelle
611
11/15/2014
IT


4
Ryan
729
5/11/2014
HR


5
Gary
843.25
3/27/2015
Finance


6
Nina
578
5/21/2013
IT


7
Simon
632.8
7/30/2013
Operations


8
Guru
722.5
6/17/2014
Finance

获取XML文件中存在的节点数

# Load the packages required to read XML files.
library("XML")
library("methods")

# Give the input file name to the function.
result <- xmlParse(file = "input.xml")

# Exract the root node form the xml file.
rootnode <- xmlRoot(result)

# Find number of nodes in the root.
rootsize <- xmlSize(rootnode)

# Print the result.
print(rootsize)

当我们执行上面的代码,它产生以下结果 -

output
[1] 8

第一个节点的详细信息

让我们看看解析文件的第一条记录。它将给我们一个关于存在于顶层节点中的各种元素的想法。

# Load the packages required to read XML files.
library("XML")
library("methods")

# Give the input file name to the function.
result <- xmlParse(file = "input.xml")

# Exract the root node form the xml file.
rootnode <- xmlRoot(result)

# Print the result.
print(rootnode[1])

当我们执行上面的代码,它产生以下结果 -

$EMPLOYEE
1
Rick
623.3
1/1/2012
IT


attr(,"class")
[1] "XMLInternalNodeList" "XMLNodeList"

获取节点的不同元素

# Load the packages required to read XML files.library("XML")library("methods")
# Give the input file name to the function.result <- xmlParse(file = "input.xml")
# Exract the root node form the xml file.rootnode <- xmlRoot(result)
# Get the first element of the first node.print(rootnode[[1]][[1]])
# Get the fifth element of the first node.print(rootnode[[1]][[5]])
# Get the second element of the third node.print(rootnode[[3]][[2]])

当我们执行上面的代码,它产生以下结果 -

1
IT
Michelle

XML到数据帧

为了在大文件中有效地处理数据,我们将xml文件中的数据作为数据框读取。然后处理数据帧以进行数据分析。

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

当我们执行上面的代码,它产生以下结果 -

 ID NAME SALARY STARTDATE DEPT1 1 Rick 623.30 2012-01-01 IT2 2 Dan 515.20 2013-09-23 Operations3 3 Michelle 611.00 2014-11-15 IT4 4 Ryan 729.00 2014-05-11 HR5 NA Gary 843.25 2015-03-27 Finance6 6 Nina 578.00 2013-05-21 IT7 7 Simon 632.80 2013-07-30 Operations8 8 Guru 722.50 2014-06-17 Finance

由于数据现在可以作为数据帧,我们可以使用数据帧相关函数来读取和操作文件。 


以上是关于R语言 XML文件的主要内容,如果未能解决你的问题,请参考以下文章

使用R语言将XML转换为CSV

R语言文本挖掘

需要示例代码片段帮助

vs code 自定义代码片段

R语言 XML文件

VS中添加自定义代码片段——偷懒小技巧