![]() |
|
![]() ![]() ![]() |
|
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
Есть такой код:
_di_IXMLNode Chapter; _di_IXMLNode Section; _di_IXMLNode Node; Chapter = _diXMLDoc->DocumentElement; if (Chapter->ChildNodes->FindNode(WideString("Arinc"))!= NULL){ Section = Chapter->ChildNodes->GetNode("Arinc"); Section->ChildNodes->Clear(); } else { Section = _diXMLDoc->DocumentElement->AddChild(WideString("Arinc")); Section->SetAttribute("ArincSet", "ArincSet"); } for (int i = 0; i < 16; i++) { Node = Section->AddChild(WideString("Channel"),i); if (ArincSet[i].Count > 0) { for (int j = 0; j < ArincSet[i].Count; j++) { Node->AddChild((AnsiString)"Adres",j); Node->ChildNodes->Nodes[(AnsiString)"Adres"]->SetNodeValue(ArincSet[i].Adres[j]); } } else { Node->AddChild((AnsiString)"Adres",0); Node->ChildNodes->Nodes[(AnsiString)"Adres"]->SetNodeValue(0); } } _diXMLDoc->SaveToFile(_diXMLDoc->FileName); Только после записи ерунда какая-то получается: <Arinc ArincSet="ArincSet1"> <Channel><Adres>3</Adres><Adres/> </Channel><Channel><Adres>4</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel><Channel><Adres>0</Adres> </Channel> </Arinc> В схеме Adres описан: <xsd:element name="Adres" type="xsd:int" minOccurs="0" maxOccurs="255"/> и если в массиве несколько адресов, то записывается только последний в первую строку секции Channel, а следующие не записываются, остается какой-то обрывок секции (выделено красным). Кто-нибудь может помочь разобраться? |
|||
|
||||
maxim1000 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
а если
? -------------------- qqq |
||||
|
|||||
Aline |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
maxim1000,
спасибо, так получилось :-) Только странно, почему? Чем отличается? |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
вообще-то не знаю
глюк либо в реализации поиска потомков по строке, либо в нашем понимании того, как эта функция должна работать ![]() на первый взгляд первый вариант тоже должен работать... -------------------- qqq |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |