Как загрузить содержимое XML в ListBox?

В ресурсах программы имеется xml документ.
При попытке загрузить из него список в ListBox, выпадает ошибка "Declared encoding does not match byte order mark".
Ошибка только при запуске проекта по Android. Под Windows все работает нормально.
<?xml version="1.0" encoding="utf-8"?>
<resourсes>
<question>
<item>Данные1 | Описание</item>
<item>Данные2 | Описание</item>
</question>
</resourсes>

procedure Form1.ListBoxItem1Click(Sender: TObject);
var
 Stream: TResourceStream;
 RootNode: IXMLNode;
 i: Integer;
begin
Stream:=TResourceStream.Create(hInstance, 'xmldoc', RT_RCDATA);
mldocument1.xml.LoadFromStream(Stream);
xmldocument1.Active:=true;
xmldocument1.Encoding:='UTF-8';
RootNode := XMLDocument1.DocumentElement;
 for i := 0 to RootNode.ChildNodes['question'].ChildNodes.Count - 1 do
begin
    Listview1.Items.Add.Text:=(RootNode.ChildNodes['question'].ChildNodes[i].Text);
         FreeAndNil(Stream);
end;
 xmldocument1.Active:=false;
     Stream.Free;
 end;
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
HemulGM
@HemulGM Куратор тега Delphi
Delphi Developer, сис. админ
Проблема не в ListBox, а в том, что не совпадают кодировки. Кодировка указанная в заголовке файла и фактическая кодировка файла. Виндовая реализация xml, вероятно проглатывает молча несоответствие, как заметили в комментариях
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы