R语言如何读取和处理XML文件
时间:2026-08-15 | 作者:星河游者 | 阅读:0XML,全称可扩展标记语言(eXtensible Markup Language),说得直白一点,它本身就是为数据的传输和存储而设计的。
如果你对 XML 还不了解,可以先查阅:XML 教程
R 语言读写 XML 文件
R 语言读写 XML 文件需要安装扩展包。
我们可以在 R 到控制台输入以下命令来安装:
install.packages("XML", repos = "https://mirrors.ustc.edu.cn/CRAN/")
查看是否安装成功:
> any(grepl("XML",installed.packages()))
[1] TRUE
创建 XML 测试文件
创建 sites.xml 文件,xml 文件与测试脚本同一目录下,代码如下:
实例
1
Google
www.google.com
111
2
Runoob
www.runoob.com
222
3
Taobao
www.taobao.com
333
载入 XML 文件数据
接下来,我们可以使用 XML 包来载入 xml 文件的数据:
实例
# 载入 XML 包
library("XML")
# 设置文件名
result <- xmlParse(file = "sites.xml")
# 输出结果
print(result)
统计 XML 数据量
统计 xml 数据量:
实例
# 载入 XML 包
library("XML")
# 设置文件名
result <- xmlParse(file = "sites.xml")
# 提取根节点
rootnode <- xmlRoot(result)
# 统计数据量
rootsize <- xmlSize(rootnode)
# 输出结果
print(rootsize)
执行以上代码输出结果为:
[1] 3
查看节点数据
查看节点数据时,某一行使用 [ ],指定的行和列使用 [[ ]]:
- [ ]:查看某一行节点数据
- [[ ]]:查看指定行和列的数据
实例
# 载入 XML 包
library("XML")
# 设置文件名
result <- xmlParse(file = "sites.xml")
# 提取根节点
rootnode <- xmlRoot(result)
# 查看第 2 个节点数据
print(rootnode[2])
# 查看第 2 个节点的第 1 个数据
print(rootnode[[2]][[1]])
# 查看第 2 个节点的第 3 个数据
print(rootnode[[2]][[3]])
执行以上代码输出结果为:
$site
2
Runoob
www.runoob.com
222
attr(,"class")
[1] "XMLInternalNodeList" "XMLNodeList"
2
www.runoob.com
XML 转为数据列表
上面这段代码输出的内容都是 XML 格式。
接下来可以用 xmlToList() 函数,把文件里的数据转换成列表结构。
这样读起来会更直观,处理起来也更方便:
实例
# 载入 XML 包
library("XML")
# 设置文件名
result <- xmlParse(file = "sites.xml")
# 转为列表
xml_data <- xmlToList(result)
print(xml_data)
print("============================")
# 输出第一行第二列的数据
print(xml_data[[1]][[2]])
执行以上代码输出结果为:
$site
$site$id
[1] "1"
$site$name
[1] "Google"
$site$url
[1] "www.google.com"
$site$likes
[1] "111"
$site
$site$id
[1] "2"
$site$name
[1] "Runoob"
$site$url
[1] "www.runoob.com"
$site$likes
[1] "222"
$site
$site$id
[1] "3"
$site$name
[1] "Taobao"
$site$url
[1] "www.taobao.com"
$site$likes
[1] "333"
[1] "============================"
[1] "Google"
XML 转为数据框
XML 文件数据可以转为数据框类型。
这样我们就更方便对数据进行操作:
实例
# 载入 XML 包
library("XML")
# xml 文件数据转为数据框
xmldataframe <- xmlToDataFrame("sites.xml")
print(xmldataframe)
执行以上代码输出结果为:
id name url likes
1 1 Google www.google.com 111
2 2 Runoob www.runoob.com 222
3 3 Taobao www.taobao.com 333
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- R语言解压与压缩tar.gz、zip等格式文件方法
- 时间:2026-08-17
-
- VSCode配置Move智能合约开发环境教程
- 时间:2026-08-17
-
- Notepad++配置R语言开发与运行环境教程
- 时间:2026-08-17
-
- Sublime Text配置R语言运行环境与数据分析脚本搭建
- 时间:2026-08-17
-
- CentOS系统中Fortran与R语言数据可视化方法
- 时间:2026-08-17
-
- VSCode配置Elixir与Phoenix框架开发环境设置
- 时间:2026-08-17
-
- Sublime配置R语言开发环境教程:R脚本高亮与运行
- 时间:2026-08-17
-
- VSCode中R语言开发如何优化Httpgd图形显示与数据透视
- 时间:2026-08-17
精选合集
更多大家都在玩
大家都在看
更多-
- 糖尿病完全不能吃糖吗
- 时间:2026-09-15
-
- 蚂蚁庄园小课堂2026年9月16日最新题目答案
- 时间:2026-09-15
-
- 小鸡答题今天的答案是什么2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园每日答题答案2026年9月16日
- 时间:2026-09-15
-
- 以下哪种粮食是酿造绍兴黄酒的主要原料 蚂蚁庄园今日答案9月16日
- 时间:2026-09-15
-
- 劝学名句“及时当勉励,岁月不待人”出自哪位诗人 蚂蚁庄园今日答案9.16
- 时间:2026-09-15
-
- 蚂蚁庄园今天答题答案2026年9月16日
- 时间:2026-09-15
-
- 蚂蚁庄园答题今日答案2026年9月16日
- 时间:2026-09-15
