You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询在R中搜索XML转换生成的字符型记录的方法

在R中筛选多行字符里的特定XML条目

假设你已经把XML文件转成了一个名为xml_lines的字符向量(每行对应一个XML条目),可以用以下两种简单方法筛选包含<models>Sud</models>的行:

方法1:用基础R自带函数(无需额外安装包)

基础R的grep函数可以直接匹配字符串模式,筛选符合条件的行:

# 示例模拟你的多行字符数据
xml_lines <- c(
  "<item><id>1</id><models>Sud</models></item>",
  "<item><id>2</id><models>Other</models></item>",
  "<item><id>3</id><models>Sud</models><color>Red</color></item>"
)

# 筛选包含<models>Sud</models>的行
matches <- xml_lines[grep("<models>Sud</models>", xml_lines)]

# 查看结果
print(matches)

如果你的XML标签和值之间可能有空格(比如<models> Sud </models>),可以调整正则表达式,匹配任意空白字符:

matches_with_space <- xml_lines[grep("<models>\\s*Sud\\s*</models>", xml_lines)]

方法2:用stringr包(语法更直观)

stringr是R中处理字符串的常用包,语法对新手更友好:

# 第一次使用先安装包
install.packages("stringr")
# 加载包
library(stringr)

# 筛选符合条件的行
matches_str <- str_subset(xml_lines, "<models>Sud</models>")

# 处理带空格的情况
matches_str_space <- str_subset(xml_lines, "<models>\\s*Sud\\s*</models>")

# 查看结果
print(matches_str)

如果之后遇到更复杂的XML解析需求,建议直接用xml2包读取原始XML文件并解析成结构化数据,但针对你当前的多行字符格式,上面两种方法足够解决问题。

内容的提问来源于stack exchange,提问作者Seq76

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:35:21