Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при разборе XML, не возвращаются значения тегов 
V
    Опции темы
AcAlex
Дата 26.2.2009, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.9.2008

Репутация: нет
Всего: нет



Здраствуйте. Задача состоит в разборке xml файла.
Код:
Код

$dom=new DOMDocument;
$dom->load('test.xml');
$xpath=new DOMXPath($dom);
$all=$xpath->query('/items/news');
$i=0;
foreach( $all as $row ) 

            $fn=$xpath->query('newstime',$row);
    $arResult[$i]['newstime']=$fn->item(0)->firstChild->nodeValue;  
    $fn=$xpath->query('headline',$row);
    $arResult[$i]['headline']=$fn->item(0)->firstChild->nodeValue;
    $fn=$xpath->query('announce',$row);
    $arResult[$i]['announce']=$fn->item(0)->firstChild->nodeValue;
    $fn=$xpath->query('body',$row);
    $arResult[$i]['body']=$fn->item(0)->firstChild->nodeValue;
    $i++;
}

В итоге в массиве $arResult должны содержаться все данные, но он после выполнения кода пустой.
Если в xml файле оставлять только первую новость, то он ее заносит в массив, при добавлении в файле еще одной новости массив пуст, хотя в массиве должно находиться уже две новости.
Помогите плиз
Xml файл прикреплен.

Это сообщение отредактировал(а) skyboy - 26.2.2009, 10:12

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  test.rar 18,84 Kb
PM MAIL   Вверх
AcAlex
Дата 26.2.2009, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.9.2008

Репутация: нет
Всего: нет



Я нашел причину ошибки - это символ "&#8". Может кто нибудь подскажет что делать в этом случае.
Заранее спасибо.
PM MAIL   Вверх
skyboy
Дата 26.2.2009, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(AcAlex @  26.2.2009,  11:57 Найти цитируемый пост)
&#8

это не символ.
корректная сущность, насколько мне известно, это "&#", четыре цифры, определеяющие код символа и ";". все на месте? или у тебя просто "&#"? 
PM MAIL   Вверх
AcAlex
Дата 26.2.2009, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.9.2008

Репутация: нет
Всего: нет



все на месте ""
опера и ff ругаются.

Это сообщение отредактировал(а) AcAlex - 13.3.2009, 02:24
PM MAIL   Вверх
skyboy
Дата 26.2.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



насчет "четырех цифр" я заблуждался.
с другой стороны, а зачем тебе непечатаемый символ с кодом "8", если выводимые символы начинаются с "32"? Возможно, дело именно в этом.

PM MAIL   Вверх
AcAlex
Дата 26.2.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.9.2008

Репутация: нет
Всего: нет



Да дело было в символе, но убрать я его не мог. Проблема решилась путем заключения содержимого поля BODY в
CDATA секцию.
skyboy  спасибо за внимание  smile .
PM MAIL   Вверх
skyboy
Дата 26.2.2009, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(AcAlex @  26.2.2009,  14:05 Найти цитируемый пост)
путем заключения содержимого поля BODY в
CDATA секцию

радикально.
а найти и заменить перед выдачей клиента - слишком сложно?
PM MAIL   Вверх
AcAlex
Дата 26.2.2009, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.9.2008

Репутация: нет
Всего: нет



Цитата

радикально.
а найти и заменить перед выдачей клиента - слишком сложно?

не понял, я беру xml с другого сервера.
PM MAIL   Вверх
skyboy
Дата 26.2.2009, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



и? берешь, заменяешь как в обычном тексте, кормишь парсеру. или у тебя другая последовательность действий?
PM MAIL   Вверх
AcAlex
Дата 27.2.2009, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.9.2008

Репутация: нет
Всего: нет



я понял, но уже сделал как сказал выше
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1173 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.