|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Удаление строк из XML
Есть xml (конфиг .cfg):
Код HTML:
Мне нужно удалить несколько строчек: <file name="${{EulaHtmlFile}}"/>, <file name="${{PrivacyPolicyFile}}"/>, <file name="${{InstallerDllDirectory}}/NVI2UI.dll" core="true"/> - как это осуществить, глядел в сторону парсинга, но запутался в доску... Вот наработка по поиску этих строк: Код:
var i: Integer; s: string; begin XMLDocument1.LoadFromFile('setup.cfg'); XMLDocument1.Active:= true; RootNode:= XMLDocument1.DocumentElement; for i:= 0 to RootNode.ChildNodes['manifest'].ChildNodes.Count - 1 do mmo1.Lines.Add(RootNode.ChildNodes['file'].ChildNodes[i].Text); //XMLDocument1.ChildNodes.Delete(i); - этим хотел удалять В мемо ничего не выводится... Всё намного проще, чем есть на самом деле... Последний раз редактировалось Aqel, 09.08.2018 в 13:41. |
#2
|
|||
|
|||
правильно, что ничего не выводит, бо как текста в этих нодах нет. Все в атрибутах сидит.
Если xml отформатирован нормально, то можно по простому: Код:
var S : TStringList; I : Integer; begin S := TStringList.Create; S.LoadFromFile('you-file.cfg.or.xml'); For I := S.Count-1 DownTo 0 Do If (Pos('${{EulaHtmlFile}}',S[i]) > 0) Or (Pos('${{PrivacyPolicyFile}}',S[i]) > 0) Or (Pos('${{InstallerDllDirectory}}/NVI2UI.dll',S[i]) > 0) then S.Delete(I); S.SavetoFile('new-file-name.cfg.or.xml'); S.Free; |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Aqel (10.08.2018)
|