У меня есть ниже PHP код, который при разборе XML из URLXML Ошибка: недопустимый символ
$parser=xml_parser_create();
function char($parser,$data)
{
echo $data;
}
xml_set_character_data_handler($parser,"char");
$fp=fopen("http://example.com","r");
while ($data=fread($fp,4096))
{
xml_parse($parser,$data,feof($fp)) or
die (sprintf("XML Error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
XML-возвращаемый выше FOPEN вызова, как this.The Xml не имеют кодировку набора сверху. Вышеприведенный код выводит XML-ошибку: недопустимый символ в строке 1008 в браузере.
<entries> //root element
<entry>
<TITLE><![CDATA[xxxx yyyyyyyyyy]]></TITLE>
</entry>
<entry>
<TITLE><![CDATA[xxxx Gold… yyyyyyyyyy]]></TITLE>//this is line no 1008 that returns invalid character error and script stops
</entry>
</entries>
Я думаю, что это может быть связано с эллипсов, потому что когда я откладываю XML вернулся в локальный файл в блокноте ++, а затем кормить файл, который XML выше анализатор работает хорошо.
Я хочу, чтобы запустить этот XML непосредственно из URL вместо сохранения его в папку, потому что будет над головой я не need.Thanks
У меня нет никакого контроля над сервером на данный момент. Поэтому настройка информации заголовка невозможна. Хотя я могу добавить Xml encoding = 'UTF-8'?> После получения XML-данных с сервера, а затем передавая данные в синтаксический анализатор. Есть ли другой способ, которым я могу это сделать. –
Проверьте эти два элемента, и я также добавил последнее предложение; Я не использовал функции XML Parser много, так как я нахожу SimpleXML намного ... проще! – miken32
Я сделал utf8_decode(), и он сработал. Спасибо за помощь и развитие сообщества. –