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

xmlstarlet查询仅返回首个匹配结果,如何提取全部XML测量数据

解决方案

你可以使用以下修正后的xmlstarlet命令得到预期输出:

xmlstarlet sel -T -t -m /RMCU/TP/VALUES -v "concat(DATETIME,';',../@id,';',format-number(TMP,'0.0000'))" -n short.xml

如果你的环境下xmlstarlet不支持format-number函数,也可以用管道结合awk完成数值格式化:

xmlstarlet sel -T -t -m /RMCU/TP/VALUES -v "concat(DATETIME,';',../@id,';',TMP)" -n short.xml | awk -F';' '{printf "%s;%s;%.4f\n",$1,$2,$3}'

修改说明

  • 调整匹配路径:将原命令中匹配/RMCU/TP改为匹配/RMCU/TP/VALUES,遍历所有测量条目而非仅遍历传感器节点,解决了仅输出每个传感器第一条数据的问题
  • 调整属性取值:使用../@id从当前VALUES节点向上获取父节点TP的id属性
  • 新增数值格式化:通过format-number函数或者awk的printf将温度值强制格式化为四位小数,符合预期输出的格式要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:36:05