R语言处理XML数据推荐使用xml2包,需先install.packages("xml2")安装并library(xml2)加载,支持通过read_xml()读取本地文件或URL。

R语言读取和处理XML数据,核心是用xml2包(推荐)或XML包。前者语法简洁、稳定性好,是目前主流选择。
安装并加载xml2包
如果没装过,先运行:
install.packages("xml2")
加载后即可使用:
library(xml2)
从文件或URL读取XML
支持本地文件路径或网页地址:
- 读本地XML文件:
doc - 读网络XML(如API返回):
doc - 读字符串内容:
doc- abc
")
提取节点和文本内容
常用函数有xml_find_all()、xml_text()、xml_attr():
- 找所有
节点:items - 提取文本:
xml_text(items)→ 得到字符向量 - 提取属性值:
xml_attr(items, "id")(假设) - 按层级查找更准:
xml_find_all(doc, "/root/item/name")
转成数据框(结构化处理)
如果XML是规则的列表结构(比如多个同级),可手动构建data.frame:
records <- xml_find_all(doc, "//record")
df <- data.frame(
name = xml_text(xml_find_all(records, "./name")),
age = as.numeric(xml_text(xml_find_all(records, "./age"))),
id = xml_attr(records, "id")
)
对嵌套深或不规则XML,建议先用as_list()转为R列表再处理:as_list(doc),便于调试结构。
基本上就这些。不复杂但容易忽略的是:注意编码(中文乱码时加encoding = "UTF-8"参数)、检查节点是否存在(用length()>0防报错)、以及用//前缀做模糊匹配更灵活。










