Batch file 从批处理文件读取xml并比较此值
我有一个XML文件。我只想使用批处理文件从这个XML文件中读取一个特定的标记值,并将这个值与其他值进行比较 我的XML文件是:Batch file 从批处理文件读取xml并比较此值,batch-file,xml-parsing,Batch File,Xml Parsing,我有一个XML文件。我只想使用批处理文件从这个XML文件中读取一个特定的标记值,并将这个值与其他值进行比较 我的XML文件是: <cruisecontrol project="AAA"> <sourcemonitor_metrics> <project version="3.3"> <metric_names name_count="15"> <metric_name id="M0" type="number">
<cruisecontrol project="AAA">
<sourcemonitor_metrics>
<project version="3.3">
<metric_names name_count="15">
<metric_name id="M0" type="number">Lines</metric_name>
<metric_name id="M1" type="number">Statements</metric_name>
.
.
.
<metric_name id="M13" type="average" values="block_depths">Average Block Depth</metric_name>
<metric_name id="M14" type="average">Average Complexity</metric_name>
</metric_names>
<checkpoints checkpoint_count="1">
<checkpoint checkpoint_name="NewcheckPoint" ignore_blank_lines="false">
<metrics metric_count="15">
<metric id="M0">34126</metric>
<metric id="M1">15278</metric>
.
.
.
<metric id="M13">2.48</metric>
<metric id="M14">3.34</metric> <!-- Want to read this value in batch -->
</metrics>
线
声明
.
.
.
平均块体深度
平均复杂度
34126
15278
.
.
.
2.48
3.34
##请忽略结束标记。
我想读取
值。我对批处理脚本非常陌生。
请建议我如何执行此操作?首先,阅读
HELP FINDSTR
并尝试此简单命令
findstr /r /c:"\<metric id=\"M14\"\>[0-9,.]*</metric\>" my.xml
它使用
作为分隔符解析上一个命令返回的行,并返回第三个参数,即所需的值。您能使用powershell吗?
for /f "delims=^<^> tokens=3" %a in ('findstr /r /c:"\<metric id=\"M14\"\>[0-9,.]*</metric\>" my.xml') do @echo %a