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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> основы связки php и xml, хочу схватить основную суть 
:(
    Опции темы
yalo
Дата 16.1.2007, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Боюсь, что многие начнут посылать меня на всякие схожие темы и давать различные ссылки, честное слово - на форуме смотрела большинство тем и ссылок и особенно самую важную тему в этом разделе которая красным помечена, но так толком и не разобралась.
Такая проблема. Есть файл xml такого типа:

Код

<?xml version="1.0" encoding="UTF-8"?>
<data>
<grades>
  <grade articul="1">Единица измерения 1</grade>
  <grade articul="2">Единица измерения 2</grade>
  <grade articul="3">Единица измерения 3</grade>
</grades>

<catalogs>
    <catalog articul="1" name="Системы вентиляции">
        <catalog articul="2" name="Воздуховоды">
            <products>
                <product articul="1">
                    <name>воздуховод 1</name> // Наименование товара
                    <grade>1</grade> // Единица измерения
                    <price>1</price>    // Цена
                </product>
            </products>
        </catalog>
        <catalog articul="3" name="Вентиляторы">
            <products>
                <product articul="2">
                    <name>вентилятор 1</name> // Наименование товара
                    <grade>2</grade> // Единица измерения
                    <price>2</price>    // Цена
                </product>
                <product articul="3">
                    <name>вентилятор 2</name> // Наименование товара
                    <grade>1</grade> // Единица измерения
                    <price>3</price>    // Цена
                </product>
            </products>
        </catalog>
        <catalog articul="4" name="Решетки">
            <products>
                <product articul="4">
                    <name>решетка 1</name> // Наименование товара
                    <grade>3</grade> // Единица измерения
                    <price>4</price>    // Цена
                </product>
                <product articul="5">
                    <name>решетка 2</name> // Наименование товара
                    <grade>1</grade> // Единица измерения
                    <price>5</price>    // Цена
                </product>
            </products>
        </catalog>
        <catalog articul="5" name="Крепежные элементы">
            <products>
                <product articul="6">
                    <name>элемент 1</name> // Наименование товара
                    <grade>3</grade> // Единица измерения
                    <price>4</price>    // Цена
                </product>
                <product articul="7">
                    <name>элемент 2</name> // Наименование товара
                    <grade>3</grade> // Единица измерения
                    <price>7</price>    // Цена
                </product>
            </products>
        </catalog>
    </catalog>

    <catalog articul="6" name="Сантехника">
        <catalog articul="7" name="Канализация">
            <products>
                <product articul="8">
                    <name>канализация 1</name> // Наименование товара
                    <grade>2</grade> // Единица измерения
                    <price>8</price>    // Цена
                </product>
            </products>
        </catalog>
        <catalog articul="8" name="Полипропилен">
            <products>
                <product articul="9">
                    <name>полипропилен 1</name> // Наименование товара
                    <grade>1</grade> // Единица измерения
                    <price>9</price>    // Цена
                </product>
                <product articul="10">
                    <name>полипропилен 2</name> // Наименование товара
                    <grade>3</grade> // Единица измерения
                    <price>10</price>    // Цена
                </product>
            </products>
        </catalog>
        <catalog articul="9" name="Мебель для ванных комнат">
            <products>
                <product articul="11">
                    <name>мебель 1</name> // Наименование товара
                    <grade>2</grade> // Единица измерения
                    <price>11</price>    // Цена
                </product>
                <product articul="12">
                    <name>мебель 2</name> // Наименование товара
                    <grade>3</grade> // Единица измерения
                    <price>12</price>    // Цена
                </product>
                <product articul="13">
                    <name>мебель 3</name> // Наименование товара
                    <grade>1</grade> // Единица измерения
                    <price>13</price>    // Цена
                </product>
            </products>
        </catalog>
    </catalog>
    <catalog articul="10" name="Фурнитура">
        <products>
            <product articul="14">
                <name>фурнитура 1</name> // Наименование товара
                <grade>2</grade> // Единица измерения
                <price>14</price>    // Цена
            </product>
            <product articul="15">
                <name>фурнитура 2</name> // Наименование товара
                <grade>1</grade> // Единица измерения
                <price>15</price>    // Цена
            </product>
        </products>
    </catalog>
</catalogs>
</data>


Мой пхп-файл дложен из него вытащить данные и записать их в бд.
смотрела http://forum.vingrad.ru/topic-51217.html, взяла скрипт, применила - работает (с кодировкой небольшие проблемы только), также один человек подсказал использовать способ типа  такого:
Код

<?
  $security = 0; /* Anybody */
  require_once("lib/base.template.php");

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  curl_setopt($ch, CURLOPT_URL, "http://www.vipip.ru/link/active");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $resData = curl_exec($ch);
  if (!$resData){
    return 0;
    exit;
  }
?>


на что в результате выходит такая ошибка:
Fatal error: Call to undefined function: curl_init() in D:\www\www\sanvent\-xmlpars.php on line 5

Раскомментировала в php.ini нужную строчку:
extensionhp_curl.dll

и на всякий случай такую:
extensionhp_domxml.dll
Не работает, перезапускала апач, перезагружала комп - все равно ошибка та же.
Смотрела много других (непонятных ;) ) способов..

Читала литературу, НО - самое главное даже не эти проблемы, какие перечислила, самое главное, что никакого законченного и ОСМЫСЛЕННОГО понятия я не получила о том, как вытащить данные из xml и вставлять их уже куда хочу.. ну вставить, я думаю, уже разберусь как, а вот как вытащить..
У меня вообще сложилось впечатление, что способов масса, и все делают по-разному, что оптимальнее - не понятно, да и что за способы собственно тоже.. где-то нужен некий curl.. подключить его тоже как-то надо (у меня Apache 2.0, а php версии 4.4.2 если что).. и раскомментрования нужных строк в php.ini недостаточно.. а где-то и curl не надо (и что за curl??? я конечно прочитала что это некий "проект, целью которого является интерпретация URL" но как-то слишком холодно звучит что ли, не прощупывается), видимо там, где не используют curl, ручками вытаскивают, без подключения модулей..

Хочется узнать даже не точный детальный ответ на вопрос, а общий понятийный обзор способов, в чем их основная суть и разница и как нужно настроить php и апач, чтобы способы работали, если они требуют особой настройки..
И хочется услышать человеческий язык, а не немые ссылки на документацию и прочую сухую литературу..

Это сообщение отредактировал(а) yalo - 16.1.2007, 11:33
PM MAIL ICQ   Вверх
AztEK
Дата 23.1.2007, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Скорее всего у вас не подключается модуль cURL, т.е. проблема не в раздел \"XML\".
Я думаю ваш вопрос нужно перенести в раздел \"Сети\" и там решать.

Кроме курл (кстати, это библиотека позволяющая работать с протоколами прикладного уровня(HTTP, как в вашем примере)) можно использовать сокеты (см. FAQ).


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
IZ@TOP
Дата 2.2.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



yalo, не то читаете и не там смотрите. CURL к чтению данных с XML древа не имеет, ровным счетом, никакого отношения.

Для начала - стоит сменить версию РНР (если это возможно) на 5-ку. Можно 5.2.
По умолчанию, все необходимые для работы с XML библиотеки, в пятой версии РНР уже включены.
Затем, останется выбор более удобной и подходящей для работы с XML в вашем конкретном случае.
Всего, в PHP, для чтения XML, приспособлены три расширения (старую xml парсилку за подходящий инструменти не считаем): SimpleXML, DOM, XMLReader.

Самым простым инструментом для новичка,  как считается, является SimpleXML. В использовании прост и удобен (хотя есть и косяки если не разобратся что к чему).
Всю необходимую информацию по использованию Вы найдете по нижеприведенным ссылкам. Если будет что-то непонятно - обращайтесь.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

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


 




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


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

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