Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2022, 01:40   #1
gameover.cpp
Новичок
Джуниор
 
Регистрация: 06.03.2022
Сообщений: 2
По умолчанию Создание xml документа

Всем доброго времени!

Нужно создать документ xml. Раньше из Delphi этого делать не доводилось. Почитав по форумам нашел несколько тем, которые меня сподвигли на такой код:

Код:
procedure TFGlav.Button1Click(Sender: TObject);
var
  XmlDoc: TXmlDocument;
  root: IXMLNode;
  child: IXMLNode;
  attrName, attrDesc: IXMLNode;
begin
  XmlDoc := TXmlDocument.Create(nil);
  XmlDoc.Active := true;
  XmlDoc.Version := '1.0';
  XmlDoc.Encoding := 'UTF-8';
  root := XmlDoc.AddChild('Computers');
  child := root.AddChild('Date');
  child := root.AddChild('Time');
  child := root.AddChild('Menu');
  attrName := XmlDoc.CreateNode('name', ntAttribute);
  attrName.Text := 'settings1';
  attrName := XmlDoc.CreateNode('name', ntAttribute);
  attrName.Text := 'settings2';
  attrName := XmlDoc.CreateNode('name', ntAttribute);
  attrName.Text := 'settings3';
  XmlDoc.SaveToFile('C:\primer.xml');
end;
В результате выполнения я получил:

Код:
<?xml version="1.0" encoding="UTF-8"?>
<Computers>
<Date/>
<Time/>
<Menu/>
</Computers>
А мне нужно такое содержание:

Код:
<?xml version="1.0" encoding="UTF-8"?>
<Computers>
  <Date> </Date>
  <Time>
    <Menu Name="Settings1" Name="Settings2" Name="Settings3"/>
  </Time>
</Computers>
Может кто-нибудь подсказать как реализовать?
gameover.cpp вне форума Ответить с цитированием
Старый 08.05.2022, 12:26   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,220
По умолчанию

Цитата:
Сообщение от gameover.cpp Посмотреть сообщение
child := root.AddChild('Menu');
Ну так вы же хотите сделать Menu дочерним к Time, значит и применять метод надо к нему, то есть к объекту child.
Arigato вне форума Ответить с цитированием
Старый 09.05.2022, 05:31   #3
gameover.cpp
Новичок
Джуниор
 
Регистрация: 06.03.2022
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Ну так вы же хотите сделать Menu дочерним к Time, значит и применять метод надо к нему, то есть к объекту child.
Спасибо. Не разобрался в собственном коде состряпанном из примера с форума. Спасть пора было идти. У меня слово root в сознании зарезервировано). Забыл что в этом примере так просто переменную назвали, и никакого тайного смысла она в Delphi имеет.

Код:
childMenu := childTime.AddChild('Menu');
Добавил для себя более явные названия переменных для последующей удобочитаемости.

Последний раз редактировалось gameover.cpp; 09.05.2022 в 05:36. Причина: правка
gameover.cpp вне форума Ответить с цитированием
Старый 15.05.2022, 20:46   #4
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 106
Счастье

2 gameover.cpp:
Добрый вечер!
Вы полностью решили свою задачу?
Я тоже сейчас воюю с XML (в Delphi - RAD Studio 10.4).
Весьма интересно, получилось ли у Вас сделать вот это:
Код:
<Menu Name="Settings1" Name="Settings2" Name="Settings3"/>
Т.е. создать три одинаковых по имени параметра и разных по значению (и если да, то как?!)
hexor_boo вне форума Ответить с цитированием
Старый 15.05.2022, 21:23   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,220
По умолчанию

Цитата:
Сообщение от hexor_boo Посмотреть сообщение
если да, то как?
Меня больше мучает вопрос, зачем?
Arigato вне форума Ответить с цитированием
Старый 16.05.2022, 00:17   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Меня больше мучает вопрос, зачем?
Ему нравится печатать имена объектов и обращаться к свойствам по именам. Судя по всему не одному мне кажется, что напечатанная программа намного длиннее того xml файла, который нужен на выходе. Не проще использовать Format.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового документа Word на основе текста другого документа Word. mihades Microsoft Office Word 11 24.08.2017 08:57
Создание документа Outed Microsoft Office Word 1 17.02.2015 10:40
Создание шаблона документа niziriska Общие вопросы .NET 1 30.04.2010 12:05
Создание формы документа Emin_304 Microsoft Office Word 4 19.01.2010 16:40
XML - создание нового документа PUH Помощь студентам 5 17.04.2008 20:32