Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка при разборе XML / 7 сообщений из 7, страница 1 из 1
21.02.2019, 19:42
    #39777568
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при разборе XML
Есть вот такой код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
procedure TForm1.Button5Click(Sender: TObject);
var
xml: string;
http : TIdHttp;
req  : TIdMultiPartFormDataStream;
data : TStream;
resp,resp2: TStringStream;
N: IXMLNode;
begin
        http := TIdHTTP.Create(nil);
                      http.Intercept:=IdLogFile1;
                     IdLogFile1.Active:=true;
                    data := TBytesStream.Create(TEncoding.Utf8.GetBytes(xml));
                    req := TIdMultiPartFormDataStream.Create;
                    req.AddFormField('xml_file', 'text/xml', 'utf-8', data, 'client.xml');
                    resp := TStringStream.Create;
                    resp2 := TStringStream.Create;
                  try
                  http.Get('http://10.10.1.233:8080/opt/out?replyId=3f194a84-49af-46ef-b145-2612896ed4a8', resp);
                  finally
                  ShowMessage(http.Response.ResponseText);
              //    memo1.Lines.append(resp.DataString);
                  XMLDocument1.XML.Text := resp.DataString;
                  XMLDocument1.Active:=true;
               //   memo1.Lines.Add(VarToStr(XMLDocument1.DocumentElement.ChildValues[0]));
                  http.Get(VarToStr(XMLDocument1.DocumentElement.ChildValues[0]), resp2);
                  XMLDocument2.XML.Text := resp2.DataString;
[color=red]                   memo1.Lines.append(resp2.DataString);
                  memo1.Lines.Add('а вот тут ошибка');[/color]
                  XMLDocument2.Active:=true;
                  memo1.Lines.append(resp2.DataString);
                  memo1.Lines.Add('10');
                  memo1.Lines.Add(GetNodeValue(XMLDocument2,'ns:Document/ns:Ticket/tc:Result/tc:Comments'));
                  resp.Free;
                  end;

end;



Отправляет запрос на сервер, получает ответ, по ответу делает ещё запрос и разбирает его. На последнем получаю ошибку:
Ошибка в элементе верхнего уровня документа.

Line: 1

п»ї<?xml version="1.0" encoding="utf-8"?.

ну и сам xml в выводе на memo выглядит странно:

п»ї<?xml version="1.0" encoding="utf-8"?>

<ns:Documents xmlns:tc=" http://fsrar.ru/WEGAIS/Ticket" xmlns:oref=" http://fsrar.ru/WEGAIS/ClientRef" xmlns:ns=" http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance" Version="1.0">

<ns:Owner>

<ns:FSRAR_ID>3463047</ns:FSRAR_ID>

</ns:Owner>

<ns:Document>

<ns:Ticket>

<tc:TicketDate>2019-02-21T15:47:38.4059084</tc:TicketDate>

<tc:Identity />

<tc:DocId>D8FE693C-061E-4FFB-A7E0-08EBAD56ECE9</tc:DocId>

<tc:TransportId>3f194a84-49af-46ef-b145-2612896ed4a8</tc:TransportId>

<tc:RegID />

<tc:DocHash />

<tc:DocType>QueryResendDoc</tc:DocType>

<tc:Result>

<tc:Conclusion>Rejected</tc:Conclusion>

<tc:ConclusionDate>2019-02-21T15:47:38.4059084</tc:ConclusionDate>

<tc:Comments>Накладная не найдена или предназначена другому грузополучателю Владелец ["020000442214"].

</tc:Comments>

</tc:Result>

</ns:Ticket>

</ns:Document>

</ns:Documents>



хотя на сервере он :
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<?xml version="1.0" encoding="utf-8"?>
<ns:Documents xmlns:tc="http://fsrar.ru/WEGAIS/Ticket" xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef" xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1.0">
  <ns:Owner>
    <ns:FSRAR_ID>3463047</ns:FSRAR_ID>
  </ns:Owner>
  <ns:Document>
    <ns:Ticket>
      <tc:TicketDate>2019-02-21T15:47:38.4059084</tc:TicketDate>
      <tc:Identity />
      <tc:DocId>D8FE693C-061E-4FFB-A7E0-08EBAD56ECE9</tc:DocId>
      <tc:TransportId>3f194a84-49af-46ef-b145-2612896ed4a8</tc:TransportId>
      <tc:RegID />
      <tc:DocHash />
      <tc:DocType>QueryResendDoc</tc:DocType>
      <tc:Result>
        <tc:Conclusion>Rejected</tc:Conclusion>
        <tc:ConclusionDate>2019-02-21T15:47:38.4059084</tc:ConclusionDate>
        <tc:Comments>Накладная не найдена или предназначена другому грузополучателю Владелец ["020000442214"]. 
</tc:Comments>
      </tc:Result>
    </ns:Ticket>
  </ns:Document>
</ns:Documents>



помогите понять что не так
...
Рейтинг: 0 / 0
21.02.2019, 19:52
    #39777574
asviridenkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при разборе XML
Gallemar,

BOM надо убрать
...
Рейтинг: 0 / 0
21.02.2019, 19:55
    #39777576
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при разборе XML
asviridenkovGallemar,

BOM надо убрать

как? сервер закрыт, xml получаю как есть
...
Рейтинг: 0 / 0
21.02.2019, 19:58
    #39777581
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при разборе XML
Ибо нефиг конвертировать UTF-8 с BOM в UTF-16
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
resp := TMemoryStream.Create;
try
  http.Get('http://10.10.1.233:8080/opt/out?replyId=3f194a84-49af-46ef-b145-2612896ed4a8', resp);
  resp.Position := 0;
  XMLDocument1.LoadFromStream(resp);
finally
  resp.Free;
end;
...
Рейтинг: 0 / 0
21.02.2019, 20:00
    #39777582
Фэйтл Эра
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при разборе XML
GallemarasviridenkovGallemar,

BOM надо убрать

как? сервер закрыт, xml получаю как есть
На клиенте. Отбрасывай начальные символы: п»ї
...
Рейтинг: 0 / 0
21.02.2019, 20:05
    #39777585
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при разборе XML
спасибо
...
Рейтинг: 0 / 0
21.02.2019, 20:22
    #39777594
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при разборе XML
Фэйтл ЭраНа клиенте. Отбрасывай начальные символы: п»їЗачем учить неправильно?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка при разборе XML / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]