首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查询xml (无效表达式)?

如何查询xml (无效表达式)?
EN

Stack Overflow用户
提问于 2016-08-26 19:07:34
回答 1查看 664关注 0票数 0

xml文件的一部分:

代码语言:javascript
复制
<caldata chopper="on" gain_1="0" gain_2="0" gain_3="0" impedance="(0,0)">
  <c0 unit="V">0.00000000e+00</c0>
  <c1 unit="Hz">4.00000000e-01</c1>
  <c2 unit="V/(nT*Hz)">1.93430000e-02</c2>
  <c3 unit="deg">8.92260000e+01</c3>
</caldata>
<caldata chopper="on" gain_1="0" gain_2="0" gain_3="0" impedance="(0,0)">
  <c0 unit="V">0.00000000e+00</c0>
  <c1 unit="Hz">5.55800000e-01</c1>
  <c2 unit="V/(nT*Hz)">1.93390000e-02</c2>
  <c3 unit="deg">8.89710000e+01</c3>
</caldata>
<caldata chopper="on" gain_1="0" gain_2="0" gain_3="0" impedance="(0,0)">
  <c0 unit="V">0.00000000e+00</c0>
  <c1 unit="Hz">7.72300000e-01</c1>
  <c2 unit="V/(nT*Hz)">1.93320000e-02</c2>
  <c3 unit="deg">8.86030000e+01</c3>
</caldata>

我想提取c2线上的数值。这是我的尝试:

代码语言:javascript
复制
 xmlstarlet sel -t -v '//caldata chopper="on"[<c2 unit="V/(nT*Hz)"> ]' 263.xml 
Invalid expression: //caldata chopper="on"[<c2 unit="V/(nT*Hz)"> ]
compilation error: element with-param
XSLT-with-param: Failed to compile select expression '//caldata chopper="on"[<c2 unit="V/(nT*Hz)"> ]'
 xmlstarlet sel -t -v '//caldata chopper="on"[<c2 unit="V/(nT*Hz)"> ]' 263.xml 
Invalid expression: //caldata chopper="on"[<c2 unit="V/(nT*Hz)"> ]
compilation error: element with-param
XSLT-with-param: Failed to compile select expression '//caldata chopper="on"[<c2 unit="V/(nT*Hz)"> ]'

我该换什么?xmlstarlet是正确的工具吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-26 20:43:43

xmlstarlet非常适合这个任务。尝试:

代码语言:javascript
复制
xmlstarlet sel -t -v '//caldata[@chopper="on"]/c2[@unit="V/(nT*Hz)"]' 263.xml

结果:

1.93430000e-02 1.93390000e-02 1.93320000e-02

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39173198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档