Здравствуйте уважаемые. Не получается у меня отредактировать XML файл.
Нужно пройти весь файл и после каждой строки </pac:lastChanging>
вставить строку </pac:fact> и в конце файла удалить такое количество строк </pac:fact>, какое было расставлено по файлу. Другими словами нужно снизу файла перенести эти строки на свои места, исправить неправильную структуру XML файла. Количество таких замен неизвестно, каждый раз количество их будет разное.
Сам файл прикрепил к сообщению.
У меня проблемы:
не получается найти строку </pac:fact> не могу заэкранировать стрелки и слеш чтобы условие сравнения строк работало(чтобы удалить нужное количество строк </pac:fact> в конце файла их то нужно найти)
при добавлении строки </pac:fact> в файл у него слетает вся структура и он становится неформатированным текстом
ПС: в скрипте так же двигаю строку lastChanging на положенное ей место.
Нужно пройти весь файл и после каждой строки </pac:lastChanging>
вставить строку </pac:fact> и в конце файла удалить такое количество строк </pac:fact>, какое было расставлено по файлу. Другими словами нужно снизу файла перенести эти строки на свои места, исправить неправильную структуру XML файла. Количество таких замен неизвестно, каждый раз количество их будет разное.
Сам файл прикрепил к сообщению.
У меня проблемы:
не получается найти строку </pac:fact> не могу заэкранировать стрелки и слеш чтобы условие сравнения строк работало(чтобы удалить нужное количество строк </pac:fact> в конце файла их то нужно найти)
при добавлении строки </pac:fact> в файл у него слетает вся структура и он становится неформатированным текстом
ПС: в скрипте так же двигаю строку lastChanging на положенное ей место.
Код:
#NoTrayIcon
#include <File.au3>
#include <Array.au3>
Local $aArray
$hOldFile = FileOpenDialog("Выберите файл", @DesktopDir , " (*.XML)")
_FileReadToArray($hOldFile, $aArray)
$kolich=0
For $n = UBound($aArray) - 1 to 0 Step -1
If StringInStr( $aArray[$n],"lastChanging") <>0 Then
$kolich+=1
ConsoleWrite( $aArray[$n] & $n&@LF)
$string=$aArray[$n]
_ArrayDelete($aArray, $n)
_ArrayInsert ($aArray,$n+1,$string)
_ArrayInsert ($aArray,$n+2,'</pac:fact>')
EndIf
Next
;~ _ArrayDisplay($aArray)
_FileWriteFromArray($hOldFile, $aArray, 1)
FileClose($hOldFile)
Exit