如何解决根据批处理文件中的键“文本”解析XML文件以获取价值
我正在尝试解析XML(TestResult.xml是XML文件的名称)文件,如下所示:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<test-run id="0" runstate="Runnable" testcasecount="94" result="Failed" total="90" passed="89" failed="1" inconclusive="0" skipped="0" asserts="220" engine-version="3.11.1.0" clr-version="4.0.30319.42000" start-time="2020-08-31 09:57:53Z" end-time="2020-08-31 10:00:06Z" duration="132.798955">
我想提取键的值-结果,总计,通过,从Xml失败。我可以使用下面的批处理脚本来实现这一点。
FOR /F tokens^=8^,10^,12^,14^ delims^=^" %%A in ('find "test-run" TestResult.xml') do (
echo: Result:%%A,TotalTestCases:%%B,Passed:%%C,Failed:%%D
)
我已经基于xml中键/值的位置(8 ^,10 ^,12 ^,14 ^)使用令牌实现了结果。但是位置会在定期升级时发生变化。所以我想根据Key文本获取相同的值。
帮助我根据键文本而不是键/值位置获取这些值。 我只是刚开始构建脚本,因此需要这种指导。
解决方法
此简单方法可处理您的数据:
@echo off
setlocal EnableDelayedExpansion
for /F "delims=" %%a in ('find "test-run" TestResult.xml') do set "line=%%a"
set "line=%line:* =%"
set "var="
for %%a in (%line:~0,-1%) do (
if not defined var (
set "var=%%a"
) else (
set "!var!=%%~a"
set "var="
)
)
echo: Result:%result%,TotalTestCases:%total%,Passed:%passed%,Failed:%failed%
输出:
Result:Failed,TotalTestCases:90,Passed:89,Failed:1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。