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

R语言使用XML包通过XPath获取XML节点值失败问题求解

问题原因

你原有代码返回的是XML节点对象列表,没有提取节点内存储的文本内容,也未做数值类型转换,因此无法得到预期的29.99数值结果。

正确实现方法

首先需要确认你已经完成XML内容的解析,生成了XMLInternalDocument类型的doc对象,完整流程如下:

library(XML)
# 1. 准备并解析XML内容(若你已经完成解析可跳过这部分)
xml_content <- '<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>'
doc <- xmlParse(xml_content)

# 2. 提取price节点数值
# 方法1:在xpathSApply中指定xmlValue参数直接提取节点文本
price_text <- xpathSApply(doc, '//book/price', xmlValue)
price <- as.numeric(price_text)

# 方法2:直接通过XPath定位到文本节点再取值
price <- as.numeric(xpathSApply(doc, '//book/price/text()', xmlValue))

# 单节点场景可选写法:先取节点再提取值
price_node <- getNodeSet(doc, '//book/price')[[1]]
price <- as.numeric(xmlValue(price_node))

以上任意一种方法运行后,price变量的取值就是你需要的29.99数值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:54:01