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

R语言xml2库xml_replace替换XML节点后残留格式符号如何解决

问题原因

直接向xml_replace传入普通字符串时,函数会默认将字符串识别为新XML元素的名称,因此会生成带尖括号的自闭合标签,而非你预期的纯文本内容。

解决方法

你需要先将目标文本创建为XML的纯文本节点,再用文本节点替换原有的name节点,实现代码如下:

library(xml2)
# 读取原始XML
x <- read_xml(
  "<scenario>
  <event>
  <dataProbeEvent>
  <name>LogSurvResHigh</name>
  </dataProbeEvent>
  </event>
  <event>
  <accumulateEvent>
  <name>SetSurvOut</name>
  </accumulateEvent>
  </event>
  </scenario>")

# 匹配所有name节点
namerefs <- xml_find_all(x, './/name')

# 逐节点替换为纯文本节点
for (node in namerefs) {
  text_content <- xml_text(node)
  xml_replace(node, xml_new_text(text_content))
}

# 输出验证结果
x

运行后输出的结果和你预期的效果完全一致,原name节点位置会直接保留文本内容,不会生成额外的标签。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 08:00:02