Che*_*Xie 2 xml bash perl xpath
示例XML:
<test name="1" result="Passed" starttimestamp="2013-05-07 10:10:44.361 -0700" endtimestamp="2013-05-07 10:10:45.361 -0700" elapsed="1" />
<test name="2" result="Passed" starttimestamp="2013-05-07 10:10:45.362 -0700" endtimestamp="2013-05-07 10:10:46.362 -0700" elapsed="1" />
<test name="3" result="Passed" starttimestamp="2013-05-07 10:10:46.363 -0700" endtimestamp="2013-05-07 10:10:53.365 -0700" elapsed="7" />
<test name="4" result="Passed" starttimestamp="2013-05-07 10:10:53.365 -0700" endtimestamp="2013-05-07 10:11:39.374 -0700" elapsed="46" />
Run Code Online (Sandbox Code Playgroud)
首先,我试过了
xpath somefile.xml test
Run Code Online (Sandbox Code Playgroud)
它给了我:
<test name="1" result="Passed" starttimestamp="2013-05-07 10:10:44.361 -0700" endtimestamp="2013-05-07 10:10:45.361 -0700" elapsed="1" />-- NODE --
<test name="2" result="Passed" starttimestamp="2013-05-07 10:10:45.362 -0700" endtimestamp="2013-05-07 10:10:46.362 -0700" elapsed="1" />-- NODE --
<test name="3" result="Passed" starttimestamp="2013-05-07 10:10:46.363 -0700" endtimestamp="2013-05-07 10:10:53.365 -0700" elapsed="7" />-- NODE --
<test name="4" result="Passed" starttimestamp="2013-05-07 10:10:53.365 -0700" endtimestamp="2013-05-07 10:11:39.374 -0700" elapsed="46" />-- NODE --
Run Code Online (Sandbox Code Playgroud)
然后我想计算所有传递的测试,即所有具有参数的节点"Passed".所以我使用了以下xpath表达式:
xpath somefile.xml count(test[@result="Passed"])
Run Code Online (Sandbox Code Playgroud)
但它给了我:
bash:意外令牌附近的语法错误`(''
然后我试了一下
xpath somefile.xml test[@result="Passed"]
Run Code Online (Sandbox Code Playgroud)
它说:
找不到节点
我强烈怀疑这只是以bash不同于你期望的方式处理命令行参数的问题.试试这个:
xpath somefile.xml 'count(test[@result="Passed"])'
Run Code Online (Sandbox Code Playgroud)
这样整个你的第二个命令行参数应该没有任何特殊含义(,[等等.
| 归档时间: |
|
| 查看次数: |
318 次 |
| 最近记录: |