C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Создание XML программно
Himan
Отправлено: 27.10.2006, 09:11


Ученик-кочегар

Группа: Участник
Сообщений: 12



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

CODE

_di_IXMLNode Container_Type = XMLDocument1->DocumentElement->AddChild(WideString("Container_Type"));
 _di_IXMLNode Table = XMLDocument1->DocumentElement;
 for(OracleDataSet1->First(); !OracleDataSet1->Eof; OracleDataSet1->Next()){
   for(int i=0; i < OracleDataSet1->FieldCount; i++){
     _di_IXMLNode ValueNode = Table->AddChild(WideString(OracleDataSet1->Fields->Fields[i]->FieldName));
     ValueNode->Text = WideString(OracleDataSet1->Fields->Fields[i]->Value);
   }
 }
 XMLDocument1->SaveToFile(WideString("d:\Probe.xml"));


Так вот, после записи в фале всего одна строка, я так понимаю только заголовок файла. В чём моя ошибка?

Отредактировано Himan — 27.10.2006, 10:11
Himan
Отправлено: 27.10.2006, 10:02


Ученик-кочегар

Группа: Участник
Сообщений: 12



Всё, разобрался yahoo.gif . Кому интересно вот код:
CODE

XMLDocument1->Active = true;
XMLDocument1->DocumentElement = XMLDocument1->CreateNode("Container_Type", ntElement, "");
for(OracleDataSet1->First(); !OracleDataSet1->Eof; OracleDataSet1->Next()){
_di_IXMLNode Record = XMLDocument1->DocumentElement->AddChild(WideString("record"));
for(int i=0; i < OracleDataSet1->FieldCount; i++){
_di_IXMLNode ValueNode = Record->AddChild(WideString(OracleDataSet1->Fields->Fields[i]->FieldName));
ValueNode->Text = WideString(OracleDataSet1->Fields->Fields[i]->Value);
}
}
XMLDocument1->SaveToFile(WideString("d:\Probe.xml"));


Отредактировано Himan — 27.10.2006, 11:03

Вернуться в Вопросы программирования в C++Builder