У меня возникли проблемы с получением файлов XML UTF-8 обратно из API DHL. Пока я не отправляю в него какие-либо специальные символы, такие как, или ó, все работает просто отлично, но с этими символами мое приложение вылетает при попытке загрузить XML-файл, полученный от DHL, выдает мне ошибки:
Warning: DOMDocument::loadXML() [domdocument.loadxml]:
Opening and ending tag mismatch: AddressLine line 43 and Consignee
in Entity, line: 53 in D:\xampp\htdocs\ebay\catch2.php on line 29
Warning: DOMDocument::loadXML() [domdocument.loadxml]:
Opening and ending tag mismatch: Consignee line 40 and res:ShipmentValidateResponse
in Entity, line: 97 in D:\xampp\htdocs\ebay\catch2.php on line 29
Warning: DOMDocument::loadXML() [domdocument.loadxml]: Premature end of
data in tag ShipmentValidateResponse line 1 in Entity, line: 98
in D:\xampp\htdocs\ebay\catch2.php on line 29
Это XML, который я отправляю
<?xml version="1.0" encoding="utf-8"?>
...
<AddressLine>address</AddressLine>
<AddressLine>asfśó</AddressLine>
...
Что я получаю:
<?xml version="1.0" encoding="UTF-8"?>
...
Lines 40 to 43:
<Consignee>
<CompanyName>Person</CompanyName>
<AddressLine>address</AddressLine>
<AddressLine>asf??ddressLine>
...
Вот что происходит вокруг строки 29:
$responseXml = $session->sendHttpRequest($requestXmlBody);
if(stristr($responseXml, 'HTTP 404') || $responseXml == '')
die('<P>Error sending request');
$responseXml = utf8_decode($responseXml);
$responseDoc = new DOMDocument('1.0', 'UTF-8');
$responseDoc->loadXML($responseXml);
E:
Удаление utf8_decode не очень помогает. Просто новая ошибка:
Warning: DOMDocument::loadXML() [domdocument.loadxml]:
Input is not proper UTF-8, indicate encoding !
Bytes: 0xF3 0x3C 0x2F 0x41 in Entity, line: 43 in D:\xampp\htdocs\ebay\catch2.php on line 29
E2:
шестнадцатеричный дамп
0000-0010: 3c 3f 78 6d-6c 20 76 65-72 73 69 6f-6e 3d 22 31 <?xml.ve rsion="1
0000-0020: 2e 30 22 20-65 6e 63 6f-64 69 6e 67-3d 22 55 54 .0".enco ding="UT
0000-0030: 46 2d 38 22-3f 3e 3c 72-65 73 3a 53-68 69 70 6d F-8"?><r es:Shipm
строка 43:
0000-0960: 4c 69 6e 65-3e 0a 20 20-20 20 20 20-20 20 3c 41 Line>... ......<A
0000-0970: 64 64 72 65-73 73 4c 69-6e 65 3e 61-73 66 3f f3 ddressLi ne>asf?.
0000-0980: 3c 2f 41 64-64 72 65 73-73 4c 69 6e-65 3e 0a 20 </Addres sLine>..