dimidron11
Новичок
- Сообщения
- 6
- Репутация
- 0
Версия AutoIt: 3.3.8.1
Описание: Необходим скрипт для изменения полей файла XML.
Нужно в поле с номером DOCUMENTNUMBER="937", вставить три последние цифры из ближайшего поля PAYERACCOUNTNUMBER="20005БУ0123" чтобы получилось DOCUMENTNUMBER="123937". И так по всему файлу.
Примечания: В файле может быть неограниченное количество данных. Изменению подлежат все файлы в данной папке (из которой запущен скрипт).
Добавлено:
Товарищи помогите в решении моей задачи :(
Вижу решение моей задачи вот так:
Создать массив из 30 пунктов:
A=CHECKFIOBOSSNAME="Мельникова О.А."
B=CHECKFIOBOSSNAME="Канова С.Ю"
C=...
Значения для подстановки:
если A то 550
если B то 450
если C то ....
если первое значение в строке CHECKFIOBOSSNAME="Мельникова О.А." то заменить DOCUMENTNUMBER=" на DOCUMENTNUMBER="550
потом проверить чему равно следующее значение CHECKFIOBOSSNAME и если оно CHECKFIOBOSSNAME="Канова С.Ю", то заменить DOCUMENTNUMBER=" на DOCUMENTNUMBER="450
и так до конца документа. Но как это реализовать :blink:
Описание: Необходим скрипт для изменения полей файла XML.
Нужно в поле с номером DOCUMENTNUMBER="937", вставить три последние цифры из ближайшего поля PAYERACCOUNTNUMBER="20005БУ0123" чтобы получилось DOCUMENTNUMBER="123937". И так по всему файлу.
Код:
<?xml version="1.0" encoding="Windows-1251"?>
<EXTRWT>
<WTFORMAT VERSION="1.1">
<DOCAZKAUBUCASHREQUESTS>
<DOCAZKAUBUCASHREQUEST ADVANCEPAYMENT="0" BUDGETNAME="Бюджет Нского района" CHECKFIOBOSSNAME="Мельникова О.А." CHECKFIOGLAVBUHNAME="Вапвар Е.С" CHECKPOSITIONBOSSNAME="Заведующая" CHECKPOSITIONGLAVBUHNAME="Главный бухгалтер" CHECKSIGNATUREDATE="2012-10-11" DOCCLASS="195" DOCUMENTDATE="2012-10-09" DOCUMENTNUMBER="40" GROUND="Приобр.прод.пит. по дог.№4 от 03.07.12г., сч.ф.№680 от 19.09.12г., сч.ф.N721 от 01.10.12г. за окт. 12г." LIMCARRYDATE="2012-10-18" LINKDOCDATE="" LINKDOCNUMBER="" NDS="0" OPERKINDID="01" OPERTYPEID="0" PAYDOCCODE="" PAYERACCOUNTNUMBER="20007БУ0550" PAYERBIC="041012001" PAYERCORACCOUNT="" PAYERINN="1212003936" PAYERKPP="121201001" PAYERNAME="Муниципальное дошкольное образовательное бюджетное учреждение детский сад "Машка" п. Нскогочи" PAYIDENTDOCUMENTDATE="" PAYIDENTDOCUMENTNUMBER="" PAYIDENTGROUND="" PAYIDENTOKATO="" PAYIDENTPERIOD="" PAYIDENTSTATUS="" PAYIDENTTYPE="" PAYKINDNAME="электронно" PI_BUDGET_CODE="" PKVKDATE="" PKVKNUMBER="" QUEUEKIND="6" RECEIVERACCOUNTNUMBER="40802810744000000812" RECEIVERBANKBRANCHNAME="" RECEIVERBIC="041012713" RECEIVERCORACCOUNT="30101810200000000713" RECEIVERINN="121200008159" RECEIVERKPP="121201001" RECEIVERNAME="Индивидуальный предприниматель Сыченко Нина Николаевна" REMARK="" WOSPENDING="0">
<LINES>
<LINE AMOUNT="7898" DESCRIPTIONLINES="Договор № 4 от 03.07.12г." GRANTINVESTMENTCODE="0" GROUNDLINES="" INDUSTRYCODE="0" KESR="340" KIF="2"/>
</LINES>
</DOCAZKAUBUCASHREQUEST>
<DOCAZKAUBUCASHREQUEST ADVANCEPAYMENT="0" BUDGETNAME="Бюджет Нского района" CHECKFIOBOSSNAME="Канова С.Ю" CHECKFIOGLAVBUHNAME="Вапвар Е.С." CHECKPOSITIONBOSSNAME="Директор" CHECKPOSITIONGLAVBUHNAME="главный бухгалтер" CHECKSIGNATUREDATE="2012-10-29" DOCCLASS="195" DOCUMENTDATE="2012-10-29" DOCUMENTNUMBER="1279" GROUND="Возврат денежных средств на модернизацию за 12г." LIMCARRYDATE="2012-11-07" LINKDOCDATE="" LINKDOCNUMBER="" NDS="0" OPERKINDID="01" OPERTYPEID="0" PAYDOCCODE="" PAYERACCOUNTNUMBER="21007БУ0450" PAYERBIC="041012001" PAYERCORACCOUNT="" PAYERINN="1212003887" PAYERKPP="121201001" PAYERNAME="Муниципальное общеобразовательное бюджетное учреждение Нскогочинская средняя общеобразовательная школа №2" PAYIDENTDOCUMENTDATE="0" PAYIDENTDOCUMENTNUMBER="0" PAYIDENTGROUND="0" PAYIDENTKODDOHKADMD="007" PAYIDENTKODDOHKD="07024362101612" PAYIDENTKODDOHKESD="241" PAYIDENTOKATO="0" PAYIDENTPERIOD="0" PAYIDENTSTATUS="8" PAYIDENTTYPE="0" PAYKINDNAME="электронно" PI_BUDGET_CODE="00707024362101612241" PKVKDATE="" PKVKNUMBER="" QUEUEKIND="6" RECEIVERACCOUNTNUMBER="03233010940" RECEIVERBANKBRANCHNAME="" RECEIVERBIC="041012001" RECEIVERCORACCOUNT="" RECEIVERINN="1212000903" RECEIVERKPP="121201001" RECEIVERNAME="Отдел образования администрации Нского района" REMARK="" WOSPENDING="0">
<LINES>
<LINE AMOUNT="15616" DESCRIPTIONLINES="" GRANTINVESTMENTCODE="058" GROUNDLINES="" INDUSTRYCODE="0" KESR="226" KIF="5"/>
</LINES>
</DOCAZKAUBUCASHREQUEST>
</DOCAZKAUBUCASHREQUESTS>
</WTFORMAT>
</EXTRWT>
Примечания: В файле может быть неограниченное количество данных. Изменению подлежат все файлы в данной папке (из которой запущен скрипт).
Добавлено:
Сообщение автоматически объединено:
Товарищи помогите в решении моей задачи :(
Вижу решение моей задачи вот так:
Создать массив из 30 пунктов:
A=CHECKFIOBOSSNAME="Мельникова О.А."
B=CHECKFIOBOSSNAME="Канова С.Ю"
C=...
Значения для подстановки:
если A то 550
если B то 450
если C то ....
если первое значение в строке CHECKFIOBOSSNAME="Мельникова О.А." то заменить DOCUMENTNUMBER=" на DOCUMENTNUMBER="550
потом проверить чему равно следующее значение CHECKFIOBOSSNAME и если оно CHECKFIOBOSSNAME="Канова С.Ю", то заменить DOCUMENTNUMBER=" на DOCUMENTNUMBER="450
и так до конца документа. Но как это реализовать :blink: