Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 33
1
RAD XE3+

Удаление строк в XML

09.08.2018, 11:54. Показов 1342. Ответов 5

Author24 — интернет-сервис помощи студентам
Есть xml (конфиг .cfg):
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<setup title="${{ProductTitle}}">
...
    <manifest>
        <file name="setup.exe" core="true"/>
        <file name="setup.cfg"/>
        <file name="eula.txt"/>
        <file name="${{EulaHtmlFile}}"/>
        <file name="${{FunctionalConsentFile}}"/>
        <file name="${{PrivacyPolicyFile}}"/>
        <file name="${{InstallerDllDirectory}}/NVI2.dll" core="true"/>
        <file name="${{InstallerDllDirectory}}/NvInstallerUtil.dll" core="true"/>
        <file name="${{InstallerDllDirectory}}/NVI2UI.dll" core="true"/>
...
    </manifest>
</setup>
Мне нужно удалить несколько строчек:
<file name="${{EulaHtmlFile}}"/>,
<file name="${{PrivacyPolicyFile}}"/>,
<file name="${{InstallerDllDirectory}}/NVI2UI.dll" core="true"/>

- как это осуществить, глядел в сторону парсинга, но запутался в доску...

Вот наработка по поиску этих строк:

Delphi
1
2
3
4
5
6
7
8
9
10
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); - этим хотел удалять
В мемо ничего не выводится...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.08.2018, 11:54
Ответы с готовыми решениями:

Удаление строк из XML
Доброго времени. Возникла проблема с редактированием записей. Нужно удалить первый дочерний элемент...

Xml deserialize удаление строк
Как можно прочитать файл и после чтения удалить нужные строки по id и записать файл уже без них?

Xml удаление повторяющихся строк
Нужно сделать так чтобы программа проверяла файл по имени и фамилии и если такой есть ,то удаляла...

Xml сериализация многострочных строк, отступы в xml файле
У меня есть класс который сериализуется в xml и содержит многострочную строку. class...

5
Модератор
9256 / 6034 / 2379
Регистрация: 21.01.2014
Сообщений: 25,795
Записей в блоге: 3
09.08.2018, 12:11 2
Что-то слабо это на xml похоже...
Вот решение методом "тупо в лоб"
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.Button1Click(Sender: TObject);
const A: array [1..3] of String = ('EulaHtmlFile', 'PrivacyPolicyFile', 'NVI2UI.dll');
var i, j: integer;
    L: TStringList;
begin
 L := TStringList.Create;
 L.LoadFromFile('setup.cfg');
 for i := L.Count - 1 downto 0 do
  for j := 1 to 3 do
   if Pos(A[j], L.Strings[i]) > 0 then
     begin
      L.Delete(i);
      break;
     end;
 L.SaveToFile('setup.cfg');
 L.Free;
end;
1
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 33
09.08.2018, 12:39  [ТС] 3
А разве не ${{EulaHtmlFile}} искать - вдруг в тексте будет схожий текст, но вез скобок ${{ ?

Твой код попробовал, но он не удаляет строки (так же попробовал со скобками). И на счёт , что это не XML - это он, просто первую строчку не скопил:
XML
1
2
3
<?xml version="1.0" encoding="UTF-8"?>
<setup title="${{ProductTitle}}">
...
0
Модератор
9256 / 6034 / 2379
Регистрация: 21.01.2014
Сообщений: 25,795
Записей в блоге: 3
09.08.2018, 12:49 4
Цитата Сообщение от Aqelius Посмотреть сообщение
но он не удаляет строки
а у меня удаляет... Свой код я вижу, а Ваш - нет...
Цитата Сообщение от Aqelius Посмотреть сообщение
вдруг в тексте будет схожий текст
А я знаю, будет он там или нет? В приведенном отрывке его нет, я на нем основывался. Хотите точности - прикрепляйте файл целиком...
1
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 33
09.08.2018, 13:01  [ТС] 5
Вот весь файл...
Вложения
Тип файла: zip setup.zip (10.9 Кб, 5 просмотров)
0
0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 33
09.08.2018, 14:40  [ТС] 6
Всё робит! Условие (if) не туда поставил. СпС!!!
0
09.08.2018, 14:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2018, 14:40
Помогаю со студенческими работами здесь

Сцепка текста в ячейках, если совпадают значения в столбце А, удаление повторов имен, удаление лишних строк
Добрый день, подскажите, как решить задачу: Есть список организаций с контактами. Одна организация...

Подсчет количество строк в textbox-e и удаление строк
Как подсчитать количество строк в текстбоксе и вывести в label. В текст боксе загружен любой...

Удаление в xml
Добрый день, опять я) в этот раз с удалением) вот код удаления: private void...

Удаление xml-тегов
Я получаю данные типа string, там есть xml-теги, как их удалить?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru