У меня есть XML-файл, подобный этому примеру:
<fruit>
<desc>xxx / yyy / zzz</desc>
</fruit>
<fruit>
<desc></desc>
</fruit>
<fruit>
<desc>abc / def / ghi</desc>
</fruit>
Я использую пакетный скрипт для исправления узла "desc".Это результат после исправления:
<fruit>
<desc>xxx/yyy/zzz</desc>
</fruit>
<fruit>
<desc>N/A</desc>
</fruit>
<fruit>
<desc>abc/def/ghi</desc>
</fruit>
Как я могу заменить 2 разных строки, не сканируя все файлы дважды?Это скрипт:
@echo off
setlocal enabledelayedexpansion
set "input_xml=xmlfile.xml"
set "search=^<desc^>^</desc^>"
set "search2= / "
set "replace=^<desc^>N/A^</desc^>"
set "replace2=/"
for /f "delims=" %%i in ('type "!input_xml!" ^& break ^> "!input_xml!" ') do (
set FixNullNode=%%i
echo !FixNullNode:%search%=%replace%! >>"!input_xml!"
)
for /f "delims=" %%v in ('type "!input_xml!" ^& break ^> "!input_xml!" ') do (
set FixSpaceSlash=%%v
echo !FixSpaceSlash:%search2%=%replace2%! >>"!input_xml!"
)
pause
Спасибо