![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Есть 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)
| ||