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

XML изменение значения между тегами

02.11.2012, 23:30. Показов 4867. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Delphi
1
2
3
XMLDocument1.LoadFromFile(ExtractFilePath(paramstr(0))+'home.xml');
XMLDocument1.DocumentElement.ChildNodes['t'+IntToStr(type_combo.ImageIndex)].ChildNodes['d'+inttostr(day_combo.ItemIndex)].ChildNodes['n'+inttostr(AdvSmoothListBox1.SelectedItemIndex+1)].NodeValue:=homework_memo.EditValue;
XMLDocument1.SaveToFile(ExtractFilePath(paramstr(0))+'home.xml');
все равно не меняет значение
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2012, 23:30
Ответы с готовыми решениями:

Запись между определенными тегами XML
Господа, подскажите мне неумелому.=) Вобщем ситуация такая - У меня есть исходный XML-файл в...

Как в XML-файле изменить значения, находящиеся между заданными тегами?
Здравствуйте, подскажите, как изменить в файле *.xml значения в тэгах <DocNumber>...</DocNumber> на...

Извлечь текст между тегами файлов xml
Всем доброго. Общая задача такая: Есть url.txt в котором примерно 50 ссылок по одной на каждой...

Как парсить значения между тегами?
В общем задание такое: нужны курсы валют отсюда Ссылка . Как можно их спарсить? (желательно только...

9
250 / 71 / 18
Регистрация: 10.04.2010
Сообщений: 532
Записей в блоге: 3
03.11.2012, 05:56 2
Цитата Сообщение от L.Lawliet Посмотреть сообщение
Delphi
1
2
3
XMLDocument1.LoadFromFile(ExtractFilePath(paramstr(0))+'home.xml');
XMLDocument1.DocumentElement.ChildNodes['t'+IntToStr(type_combo.ImageIndex)].ChildNodes['d'+inttostr(day_combo.ItemIndex)].ChildNodes['n'+inttostr(AdvSmoothListBox1.SelectedItemIndex+1)].NodeValue:=homework_memo.EditValue;
XMLDocument1.SaveToFile(ExtractFilePath(paramstr(0))+'home.xml');
все равно не меняет значение
А хотябы кусочег XML кода?
1
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
04.11.2012, 00:59  [ТС] 3
Нужно менять значение между тегами n1,n2 и тд

Добавлено через 8 часов 15 минут
Цитата Сообщение от Z3oM Посмотреть сообщение
А хотябы кусочег XML кода

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
[XML]<?xml version="1.0" encoding="windows-1251"?>
<Home>
    <t0>
        <d0>
            <n1></n1>
            <n2></n2>
            <n3></n3>
            <n4></n4>
            <n5></n5>
            <n6></n6>
            <n7></n7>
        </d0>
        <d1>
            <n1></n1>
            <n2></n2>
            <n3></n3>
            <n4></n4>
            <n5></n5>
            <n6></n6>
            <n7></n7>
        </d1>
        <d2>
            <n1></n1>
            <n2></n2>
            <n3></n3>
            <n4></n4>
            <n5></n5>
            <n6></n6>
            <n7></n7>
        </d2>
        <d3>
            <n1></n1>
            <n2></n2>
            <n3></n3>
            <n4></n4>
            <n5></n5>
            <n6></n6>
            <n7></n7>
        </d3>
        <d4>
            <n1></n1>
            <n2></n2>
            <n3></n3>
            <n4></n4>
            <n5></n5>
            <n6></n6>
            <n7></n7>
        </d4>
        <d5>
            <n1></n1>
            <n2></n2>
            <n3></n3>
            <n4></n4>
            <n5></n5>
            <n6></n6>
            <n7></n7>
        </d5>
    </t0>
    <t1>
        <d0>
            <n1></n1>
            <n2></n2>
            <n3></n3>
            <n4></n4>
            <n5></n5>
            <n6></n6>
            <n7></n7>
        </d0>
        <d1>
            <n1></n1>
            <n2></n2>
            <n3></n3>
            <n4></n4>
            <n5></n5>
            <n6></n6>
            <n7></n7>
        </d1>
        <d2>
            <n1></n1>
            <n2></n2>
            <n3></n3>
            <n4></n4>
            <n5></n5>
            <n6></n6>
            <n7></n7>
        </d2>
        <d3>
            <n1></n1>
            <n2></n2>
            <n3></n3>
            <n4></n4>
            <n5></n5>
            <n6></n6>
            <n7></n7>
        </d3>
        <d4>
            <n1>555</n1>
            <n2>555</n2>
            <n3>555</n3>
            <n4>555</n4>
            <n5>444</n5>
            <n6>444</n6>
            <n7>444</n7>
        </d4>
        <d5>
            <n1></n1>
            <n2></n2>
            <n3></n3>
            <n4></n4>
            <n5></n5>
            <n6></n6>
            <n7></n7>
        </d5>
    </t1> 
</Home>
[/XML]
0
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
05.11.2012, 01:35  [ТС] 4
Кто нибудь поможет?
0
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
05.11.2012, 05:27 5
Если узел существует, то такой код изменит его значение:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
procedure TForm1.Button1Click(Sender: TObject);
var
  Node : IXMLNode;
  Od : TOpenDialog;
begin
  Od := OpenDialog1; //OpenDialog1 уже должен быть на форме.
  if Od.InitialDir = '' then Od.InitialDir := ExtractFilePath(ParamStr(0));
  if not Od.Execute then Exit;
  if not FileExists(Od.FileName) then begin
    ShowMessage('Файл с заданным именем не существует. Действие отменено.');
    Exit;
  end;
 
  XMLDocument1.LoadFromFile(Od.FileName);
  XMLDocument1.Active := True;
  //Запрет на автоматическое создание узлов и на автосохранение.
  XMLDocument1.Options := XMLDocument1.Options - [doNodeAutocreate, doAutoSave];
 
  Node := XMLDocument1.DocumentElement;
  Node := Node.ChildNodes.FindNode('t0');
  if Node <> nil then
    Node := Node.ChildNodes.FindNode('d0');
  if Node <> nil then
    Node := Node.ChildNodes.FindNode('n1');
  if Node <> nil then
    Node.NodeValue := 't0-d0-n1-value';
 
  //Сохраняем документ, если он изменился.
  if XMLDocument1.Modified then
    XMLDocument1.SaveToFile(Od.FileName);
end;
1
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
05.11.2012, 13:00  [ТС] 6
Цитата Сообщение от Mawrat Посмотреть сообщение
if Node <> nil then
* * Node.NodeValue := 't0-d0-n1-value';
а вот тут заместо value значение нужно записать ?
0
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
05.11.2012, 17:28 7
Да - там нужное значение надо записывать. Значение 't0-d0-n1-value' - это я для примера написал.
1
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
05.11.2012, 20:18  [ТС] 8
Тоже не изменяется ничего в файле

Добавлено через 34 минуты
Отдельно в новом проекте работает а в моем не работает (((((
0
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
05.11.2012, 21:10 9
Возможно, неправильно формируется имя узла. Надо в режиме отладки посмотреть - какие выбираются узлы. И для начала следует запустить тот код, который я выше представил - в качестве проверки.
0
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 22
05.11.2012, 23:41  [ТС] 10
Цитата Сообщение от Mawrat Посмотреть сообщение
Возможно, неправильно формируется имя узла. Надо в режиме отладки посмотреть - какие выбираются узлы. И для начала следует запустить тот код, который я выше представил - в качестве проверки
Я его пробовал , он работает. А вот когда в мой проект то не работает. Ошибок нет но изменений не происходит

Добавлено через 21 минуту
Спасибо за помощь. Ошибка была в мемо
0
05.11.2012, 23:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2012, 23:41
Помогаю со студенческими работами здесь

Распарсить строку и получить значения между тегами
Строчка имеет такой вид &lt;tag&gt;1&lt;/tag&gt; &lt;tag1&gt;2&lt;/tag1&gt; Зак вытащить содержимое каждого тега? ...

Вывод в файл находящегося между заданными тегами текста из каждого имеющегося в определённой папке XML-файла
Добрый день! Прошу помочь с bat-скриптом, который бы читал из одной папки все доступные...

Изменение значения XML литерала
Имеем XML файл настроек: &lt;Settings&gt; &lt;Position&gt; &lt;Left&gt;689&lt;/Left&gt; &lt;Top&gt;340&lt;/Top&gt; ...

Изменение значения элемента XML через JTextField
Добрый день. Пытаюсь сделать внешний редактор для определенных XML файлов. В цикле прочитать...


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

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