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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при парсинге xml на PHP4, xml 
:(
    Опции темы
Elessar
Дата 3.4.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



есть документ:

<?xml version="1.0" encoding="windows-1251"?>
<pult date="2007-03-29 17:13">
<product id="108">
<group>Акустическая система</group><manufacture>Boston Acoustics</manufacture><name>PV1000-BV</name><description>Этот сабвуфер является убедительным доказательством того, что невероятно мощное устройство может быть заключено в конструкцию небольших размеров. Речь идет о сабвуфере, который обсепечивает сногшибательное воспроизведение баса, занимая при этом менее 1 квадратного метра. 
</description><price>1268.00</price><url>http://www.pult.ru/product/108.htm?plg=Aistandil</url><img file="http://www.pult.ru/upload/images/6340.jpg" type="1" width="157" height="200" /><img file="http://www.pult.ru/upload/images/6341.jpg" type="2" width="78" height="100" /></product>
<product id="109">
<group>Акустическая система</group><manufacture>Boston Acoustics</manufacture><name>PV1000-WG</name><description>Этот сабвуфер является убедительным доказательством того, что невероятно мощное устройство может быть заключено в конструкцию небольших размеров. Речь идет о сабвуфере, который обсепечивает сногшибательное воспроизведение баса, занимая при этом менее 1 квадратного метра. 
</description><price>1268.00</price><url>http://www.pult.ru/product/109.htm?plg=Aistandil</url><img file="http://www.pult.ru/upload/images/6328.jpg" type="2" width="85" height="100" /><img file="http://www.pult.ru/upload/images/6327.jpg" type="1" width="170" height="200" /></product>



пытаюсь отпарсить таким скриптом:


Код

$news = array();

$xml = join('',file('a.xml'));
$xml = xmldoc($xml);

$xml->xpath_init();
$ctx = xpath_new_context($xml);
$nodes = xpath_eval($ctx,'//product');

foreach($nodes->nodeset as $node)
{
    $currentNews = array();
    $currentNews['id'] = $node->get_attribute('id');
    $content = $node->children();
    foreach($content as $contentNode)
    {
        if (($contentNode->type==XML_ELEMENT_NODE) &&
            (in_array($contentNode->name,array('group','manufacture'))))
            $currentNews[$contentNode->name] = $contentNode->content;
    };
    $news[] = $currentNews;
};


print_r ($news);



в итоге парсятся тока id..что не так?

 ! 
PARROT
Модератор: Название темы должно отражать ее суть!


Это сообщение отредактировал(а) PARROT - 5.4.2007, 19:18
PM MAIL   Вверх
Golda
Дата 5.4.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

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



Попробуйте так,

Код

<?php
$news = array();
$xml = join('',file('/var/www/test/test.xml'));
$xml = xmldoc($xml);
$xml->xpath_init();
$ctx = xpath_new_context($xml);
$nodes = xpath_eval($ctx,'//product');
foreach($nodes->nodeset as $node)
{
    $currentNews = array();
    $currentNews['id'] = $node->get_attribute('id');
    $content = $node->child_nodes();
    foreach($content as $contentNode)
    {
        if (($contentNode->type==XML_ELEMENT_NODE) &&
            (in_array($contentNode->name(),array('group','manufacture'))))
            $currentNews[$contentNode->name()] = $contentNode->get_content();
    };
    $news[] = $currentNews;
};
print_r ($news);
?>


На случай, если помощь еще понадобится, отредактируйте пример xml. вы забыли закрыть тег <pult>

Это сообщение отредактировал(а) Golda - 5.4.2007, 18:58


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




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


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

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