0

我有一个 XML 文件。我想要的只是使用批处理文件从这个 XML 文件中读取一个特定的标签值,并将这个值与其他值进行比较。

我的 XML 文件是:

<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>

## 请忽略结束标签。

我想读取 <metric id="M14">价值。
我对批处理脚本很陌生。请建议我该怎么做?

4

1 回答 1

1

首先,阅读HELP FINDSTR并尝试这个简单的命令

 findstr /r /c:"\<metric id=\"M14\"\>[0-9,.]*</metric\>" my.xml

它在 xml 文件中找到正则表达式"\<metric id=\"M14\"\>[0-9,.]*</metric\>"并返回匹配的行。

然后阅读HELP FOR并尝试此命令

 for /f "delims=^<^> tokens=3" %a in ('findstr /r /c:"\<metric id=\"M14\"\>[0-9,.]*</metric\>" my.xml') do @echo %a

<它使用和作为分隔符解析上一个命令返回的行,>并返回第三个参数,即所需的值。

于 2013-01-28T12:58:20.090 回答