Я пытаюсь извлечь значения для test_count
, test_fail_count
, test_pass_count
из файла XML. Этот XML-файл имеет только одну очень длинную строку:Как извлечь значения из файла XML без символов новой строки (очень длинная одиночная строка)?
<?xml version="1.0" encoding="UTF-8"?><ROOT test_count="22" test_fail_count="1" test_pass_count="21".......</ROOT>
Magoo помог мне со сценарием, увидеть его ответ на мой предыдущий вопрос
How to match strings from an XML file using batch and assign to variable?
Этот сценарий изначально работал. Но когда я включил это в свой более общий общий скрипт, он потерпел неудачу. И я не смог заставить этот скрипт работать снова, как ожидалось, начиная с этой модификации.
Любые мысли о том, как отладить это?
@ECHO Off
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "filename1=%sourcedir%\Report.xml"
SET "testcount="
SET "testfailcount="
echo forloop
FOR /f "usebackqdelims= " %%a IN ("%filename1%") DO (
SET "xmlline=%%a"
CALL :process
)
ECHO test count=%testcount% test fail count=%testfailcount%
GOTO :EOF
:process
echo in process
:: dispose of awkward characters
SET "xmlline=%xmlline:?= %"
SET "xmlline=%xmlline:>= %"
SET "xmlline=%xmlline:<= %"
CALL :select %xmlline%
GOTO :EOF
:select
echo in select
IF /i "%~1"=="" GOTO :EOF
IF DEFINED testcount IF DEFINED testfailcount GOTO :EOF
IF /i "%~1"=="test_count" SET /a testcount=%~2
IF /i "%~1"=="test_fail_count" SET /a testfailcount=%~2
SHIFT
GOTO select
GOTO :EOF
'любые мысли о том, как отлаживать это?' - превратить 'echo on' – Stephan
автономный он преуспел, btu включил его, что позволяет вам более или менее искать. Для получения дополнительной информации попробуйте выяснить и описать, что на самом деле происходит, какое поведение вы видите, какие ошибки, неожиданный вывод и т. Д. – GolezTrol
Не делая точно такой же, как и для проверки, код, который вы опубликовали, представляется допустимым рабочим кодом. В вашем вопросе говорится, что включение этого кода в ваш существующий код является проблемой. Поэтому нам необходимо увидеть, что код включен. Мы не можем отлаживать код, который мы не видели. – Compo