xmlLevel1 = xmlDoc->AddChild("root:Data");
ansi_buf = Query->FieldByName("DATA")->AsString;
if( ansi_buf.Length() )
{
xmlLevel1->SetText( ansi_buf );
xmlLevel1->SetAttribute( "xsi:nil", false );
}
else xmlLevel1->SetAttribute( "xsi:nil", true );
XML: Некоректное булевкое значение атрибута тега
Код:
Все бы хорошо, но при установке значений атрибута xsi:nil, вместо нужной строки типа
Код:
xsi:nil="[color=red]t[/color]rue"
получается вот такая
Код:
xsi:nil="[color=red]T[/color]rue"
Определенный софт такое значение просто не принимает как булевкое (это факт, проверяющий софт не изменить ).
Даже не знаю за что хвататся.
Не сталкивался ли кто-то с подобной проблемой? Очень нужна помощь.
Код:
..
xmlLevel1->SetAttribute( "xsi:nil", "true" );
..
xmlLevel1->SetAttribute( "xsi:nil", "true" );
..
Нужно еще привести обе строки (с названием атрибута и его значением) к типу WideString :)
Цитата: Gole
Увы, но этого недостаточно :(
Нужно еще привести обе строки (с названием атрибута и его значением) к типу WideString :)
Нужно еще привести обе строки (с названием атрибута и его значением) к типу WideString :)
Ну либо так, если строку формируешь в run-time!!
Код:
AnsiString txtParam = GetTheParamFromSomeFunction();
AnsiString txtValue = GetTheValueFromSomeFunction();
WCHAR *bufParam;
WCHAR *bufValue;
bufParam = new WCHAR[txtParam.WideCharBufSize()];
bufValue = new WCHAR[txtValue.WideCharBufSize()];
xmlLevel1->SetAttribute(txtParam.WideChar(bufParam, txtParam.WideCharBufSize()), txtValue.WideChar(bufValue, txtValue.WideCharBufSize()));
delete[] bufParam;
delete[] bufValue;
AnsiString txtValue = GetTheValueFromSomeFunction();
WCHAR *bufParam;
WCHAR *bufValue;
bufParam = new WCHAR[txtParam.WideCharBufSize()];
bufValue = new WCHAR[txtValue.WideCharBufSize()];
xmlLevel1->SetAttribute(txtParam.WideChar(bufParam, txtParam.WideCharBufSize()), txtValue.WideChar(bufValue, txtValue.WideCharBufSize()));
delete[] bufParam;
delete[] bufValue;
А если значения заведомо известны, можно и так:
Код:
xmlLevel1->SetAttribute(L"xsi:nil", L"true");