如何将xml中两个标记之间的文本提取到文件中

时间:2017-04-12 13:38:16

标签: xml batch-file

我有一个xml,格式如下:

<Record>
    <ID>aaa</ID>
    <NAME>aaa</NAME>
    <ADD>aaa</ADD>
</RECORD>
<Record>
    <ID>bbb</ID>
    <NAME>bbb</NAME>
    <ADD>bbb</ADD>
</RECORD>

我想提取ID标签之间的所有文本,并将它们放在另一个file.txt中的单独行中。

我的.bat如下:

@echo off
setlocal EnableDelayedExpansion

for /F "delims=" %%a in (file.xml) do (
   set "line=%%a"
   for %%X in (^"^
% Do NOT remove this line %
^") do for /F "delims=" %%b in ("!line:>=%%~X!") do (
      if /I "!field!" equ "<ID_IC" for /F "delims=<" %%c in ("%%b") do >> file2.txt
      set "field=%%b"
   )
)

但不知怎的,这不起作用。任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

for /f "tokens=2,3,4delims=<>" %%a in (filename) do if /i "%%a%%c"=="ID/ID" echo %%b

应根据需要列出您的数据。

使用<>所以

查看每行数据和标记
<ID>aaa</ID>

成为令牌1 =前导空格,2 =“ID”,3 = aaa和4 = / ID

因此,如果%%a中与%%c中的令牌4连接的令牌2为ID/ID,则所需数据位于%%b(令牌3)

Simples。