这是我的XML,我正在使用xmllint
(在bash脚本文件中解析xml)来查找xml中的元素。
<testsuite name="com.myapp.testcases.loginTest">
<testcase name="invalidIdTest" classname="com.myapp.testcases.loginTest" time="0.002">
<skipped/>
</testcase>
<testcase name="invalidTokenTest" classname="com.myapp.testcases.loginTest" time="4.164"/>
<testcase name="connectAndDisconnectTest" classname="com.myapp.testcases.loginTest" time="13.622">
</testcase>
<testcase name="invalidServerUrlTest" classname="com.myapp.testcases.loginTest" time="40.072"/>
</testsuite>
我想找出testcase
元素是否有子元素skipped
?
如果我尝试执行以下命令,但它为所有4个testcase
元素提供了空输出。
val=$(xmllint --xpath 'string(testsuite/testcase/*[local-name()="skipped"])' skipped.xml)
echo $val
并对此进行了尝试
isSkipped=$(xmllint --xpath "string(/testsuite/testcase[$i][skipped])" skipped.xml)
如果testcase
元素具有skipped
子元素,否则我想打印1。
请帮助我
答案 0 :(得分:0)
如果
testcase
元素具有skipped
子元素,我想打印1 否则为0
number(boolean(/testsuite/testcase[skipped]))
请注意,这适用于整个文档:“是否有testcase
带有skipped
个孩子”。