Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Добавление в Xml


Автор: _Rin 19.9.2006, 10:12
Есть Xml-файл.
Код

<?xml version="1.0" encoding="windows-1251" standalone="yes"?>
<data>
    <units>
        <textures>
            <item name="terra1" filename="nor-new1.jpg" format="0"/>
            <item name="terra2" filename="nor-new2.jpg" format="2"/>
            <item name="terra3" filename="nor-new3.jpg" format="1"/>
        </textures>
        <objects>
         ...
        </objects>
        <actors>
                 ...
        </actors>
        <worlds>
          ...    
        </worlds>
    </units>
</data>


Как добавить  item с аттрибутами  в textures. 

Автор: Yanis 19.9.2006, 14:27
IXMLUnitsType.Textures.Add

Автор: _Rin 19.9.2006, 15:56
Добавляю следующим образом:
Код

with XLL.ChildNodes['datagame'].ChildNodes['units'].ChildNodes['textures'].AddChild('item') do
 begin
  Attributes['name']:=tex_name.Text;
  Attributes['filename']:=tex_filename.Text;
  Attributes['format']:=tex_format.Text;
 end;


Ругается на строку AddChild('item').
XLL типа IXMLNode;

Почему??? smile 

Помогите!!!

Автор: drkot 19.9.2006, 16:56
Цитата(_Rin @  19.9.2006,  15:56 Найти цитируемый пост)
XLL.ChildNodes['datagame'].ChildNodes['units'].ChildNodes['textures'].AddChild('item')


парсер не любит таких вложеных обращений. Почему не знаю.
попробуй сократить строку до

Код

Node.AddChild('item')

Автор: _Rin 20.9.2006, 09:01
Передалала:
Код

 temp:=XLL.ChildNodes['units'].ChildNodes['textures'];
  temp:=temp.AddChild('item');
  temp.SetAttributeNS('name','tex',tex_name.Text);
  temp.SetAttributeNS('filename','tex',tex_filename.Text);
  temp.SetAttributeNS('format','tex',tex_format.Text);


Та же ошибка на строке  temp:=temp.AddChild('item');

Автор: drkot 20.9.2006, 10:56
Если структура твоего файла извесна заранее то стоит сгенерировать интерфейсы для работы с файлом.
Цитата(_Rin @  20.9.2006,  09:01 Найти цитируемый пост)
('item')

может ему имя не нравится, а может пытаешся создать Child у непроинициализированого нода. 

Автор: _Rin 20.9.2006, 13:04
Структура xml-файла известна заранее.
- Что значит "сгенерировать интерфейсы".
- Как проинициализировать нод.

Автор: Yanis 20.9.2006, 14:06
Цитата(_Rin @  20.9.2006,  14:04 Найти цитируемый пост)
- Что значит "сгенерировать интерфейсы".
- Как проинициализировать нод.

Ищи в справке XML Data Binding.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)