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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2010, 03:33   #1
adben
Новичок
Джуниор
 
Регистрация: 25.07.2010
Сообщений: 2
По умолчанию построение XML сложной структуры с помощью nativeXML

Добрый день...
с подачи GenniY начал использовать nativeXML.
Возник вопрос... а как создать XML следующей структуры:
Код:
  <?xml version="1.0" encoding="UTF-8" ?> 
    <methodCall>
        <methodName>Имя метода</methodName> 
       <params>
            <param>
                 <member>
                        <name>1</name> 
                        <value>
                              <string>qwerty</string> 
                        </value>
                    </member>
             </param>
              <param>
                      <member>
                           <name>2</name> 
                              <value>
                                   <string>ytrewq</string> 
                              </value>
                      </member>
              </param>
      </params>
  </methodCall>
использую следующую конструкцию:
Код:
1.  XMLDoc:=TNativeXml.Create;
2.  XMLDoc.CreateName('methodCall');
3.  XMLDoc.Root.NodeNew('methodName').ValueAsString:='Имя метода';
4.  XMLDoc.Root.NodeNew('params');
5.     XMLDoc.Root.NodeByName('params').NodeNew('param').NodeNew('member').NodeNew('name').ValueAsString:='1';
6.     XMLDoc.Root.NodeByName('params').NodeByName('param').NodeByName('member').NodeNew('value').NodeNew('string').ValueAsString:='qwerty';
7.     XMLDoc.Root.NodeByName('params').NodeNew('param').NodeNew('member').NodeNew('name').ValueAsString:='2';
8.     XMLDoc.Root.NodeByName('params').NodeByName('param').NodeByName('member').NodeNew('value').NodeNew('string').ValueAsString:='ytrewq';
9.     XMLDoc.SaveToFile('MyXML.xml');
на выходе получаю следующее:
Код:
  <?xml version="1.0" encoding="UTF-8" ?> 
 <methodCall>
  <methodName>имя метода</methodName> 
     <params>
          <param>
              <member>
                    <name>1</name> 
                        <value>
                            <string>qwerty</string> 
                        </value>
                        <value>
                            <string>ytrewq</string> 
                        </value>
              </member>
          </param>
           <param>
                  <member>
                         <name>2</name> 
                  </member>
           </param>
     </params>
  </methodCall>
понимаю, что в 8-й строке запись идет в первый узел <member>.Сделать ничего не могу. возможно есть какой-то способ выбора узла среди одноименных? может как-то по индексу...
примеров работы с nativeXML мало, на форуме смотрел.
P.S подобные структуры XML используются в XMLRPC
adben вне форума Ответить с цитированием
Старый 29.07.2010, 06:59   #2
adben
Новичок
Джуниор
 
Регистрация: 25.07.2010
Сообщений: 2
По умолчанию

ну пипец.... спасибо всем... 40 чел смотрело и хоть бы кто чего сказал...
ага
adben вне форума Ответить с цитированием
Старый 29.07.2010, 07:06   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от adben Посмотреть сообщение
ну пипец.... спасибо всем... 40 чел смотрело и хоть бы кто чего сказал...
ага
Why are you so serious?

Как я понял NodeNew (или как там) возвращает указатель на экземпляр класса, т.е. на созданный узел, так почему не использовать его для записи именно в этот узел?

типа vat node := XMLDoc.Root.NodeNew('methodName'); node.NodeNew....

Последний раз редактировалось BOBAH13; 29.07.2010 в 07:09.
BOBAH13 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XML (парсинг NativeXml ) и Delphi 2009 S_Yevgeniy Помощь студентам 13 17.09.2009 15:56
Чтение XML с помощью XPath Neymexa Общие вопросы .NET 0 14.04.2009 22:43
символьные данные сложной структуры и имя массива как параметр функции EkaterinaA Помощь студентам 3 22.02.2009 21:36
Сохранение в файл сложной динамической структуры _Инженер_ Общие вопросы Delphi 24 20.10.2008 09:38