
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.75] |
![]() |
|
Сообщ.
#1
,
|
|
|
Интересует работа с TXMLDocument. Конкретно нужно чтение и запись новых элементов.
|
Сообщ.
#2
,
|
|
|
неужели тут никто с TXMLDocument не работал?
|
Сообщ.
#3
,
|
|
|
запись
![]() ![]() xmlRequest->XML->Clear(); xmlRequest->Active = true; xmlRequest->Version = "1.0"; xmlRequest->Encoding = "utf-8"; _di_IXMLNode request = xmlRequest->Node->AddChild( "request" ); _di_IXMLNode child = request->AddChild( "protocol-version" ); child->SetText( "blablabla" ); child = request->AddChild( "extra" ); child->SetAttribute( "name", WideString( "client-software" ) ); чтение ![]() ![]() xmlResponse->Active = false; xmlResponse->XML->Text = Получить документ xmlResponse->Active = true; _di_IXMLNode request = xmlResponse->ChildNodes->FindNode( WideString( "response" ) ); if( response->GetNodeName() == WideString( "response" ) ) { _di_IXMLNode result_code = response->GetChildNodes()->FindNode( WideString( "result-code" ) ); if( !result_code->GetAttribute( "fatal" ).IsNull() && WideString( result_code->GetAttribute( "fatal" ) ) == WideString( "true" ) ) { /** * <response> * <result-code fatal="true">150</result-code> * </response> * * -------------------------------------------------------------------- * * -- fatal server error response to do: */ return StrToInt( result_code->GetText() ); } else { /** * <?xml version="1.0" encoding="windows-1251"?> * <response> * <protocol-version>3.00</protocol-version> * <response-codes> * <response-code id="0">OK</response-code> * <response-code id="1">Провайдер временно недоступен</response-code> * . * . * . * <response-code id="300">Другая (неизвестная) ошибка провайдера</response-code> * </response-codes> * </response> * * -------------------------------------------------------------------- * * -- success response to do: */ _di_IXMLNode response_codes = response->GetChildNodes()->FindNode( WideString( "response-codes" ) ); if( response_codes.operator ->() ) { int count = response_codes->GetChildNodes()->GetCount(); for( int i=0;i<count;i++ ) { codes->insert( StrToInt( response_codes->GetChildNodes()->Get( i )->GetAttribute( "id" ) ), AnsiString( response_codes->GetChildNodes()->Get( i )->GetText() ).c_str() ); } } return StrToInt( result_code->GetText() ); } } в общем, как то так. |
Сообщ.
#4
,
|
|
|
спасибо
|