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

使用xmlstarlet提取含import子节点的XML分组信息输出为CSV

解决方案

问题原因

你的XML根节点定义了默认命名空间http://tableau.com/api,所有子节点(包括import节点)都继承该命名空间。你之前的命令仅为group节点添加了命名空间前缀,没有给import节点添加,导致定位不到import节点,对应的属性值读取为空。

修正后命令

如果你需要输出逗号分隔的CSV格式,直接使用以下命令:

xmlstarlet sel -N api=http://tableau.com/api -T -t -m //api:group -v "concat(@id,',',@name,',',api:import/@siteRole,',',api:import/@grantLicenseMode)" -n groups.xml

如果需要保留你之前使用的分号作为分隔符,调整concat里的分隔符即可:

xmlstarlet sel -N api=http://tableau.com/api -T -t -m //api:group -v "concat(@id,';',@name,';',api:import/@siteRole,';',api:import/@grantLicenseMode)" -n groups.xml

输出效果

运行修正后的命令会直接得到你预期的结果:没有import子节点的分组后两列为空,有import子节点的分组会正常读取siteRole和grantLicenseMode属性值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:54:01