КАК СОЗДАТЬ САЙТ С ПОМОЩЮ XML

Тема в разделе "PHP", создана пользователем 999udaw, 9 дек 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. 999udaw

    999udaw Писатель

    Регистр.:
    8 сен 2008
    Сообщения:
    36
    Симпатии:
    0
    сразу прошу не заплевывать так как буду говорить о вещах мне мало знакомых. но хотел бы узнать с чего мне начать на доступном для чайника языке
    а дело вот в чем.

    ДАНО
    по партнерской программе предоставлен файл в формате XML в котором описан товар цены ну и к каким категориям он относится.

    НАДО
    сделать страничку чтоб по катигориям .

    есть конечно знания HTML И CSS
    НО Я ТАК ПОНЯЛ ЭТОГО НЕДОСТАТОЧНО

    роскажите посоветуйте с чего начинать, что почитать ,изучить. чтоб преобразовать данные xml в красивую страничку Web
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Одним HTML не справишься.
    Можно парсить XML при помощи любого серверного языка (или JS если поисковики не критичны).
    Также можно заюзать XSLT.
     
  3. koroliov

    koroliov Создатель

    Регистр.:
    4 июн 2007
    Сообщения:
    27
    Симпатии:
    4
  4. 999udaw

    999udaw Писатель

    Регистр.:
    8 сен 2008
    Сообщения:
    36
    Симпатии:
    0
    почитал про XSLT В ПОЛНЕ неплохо . но как я понял надо иметь сам XML файл и обращаться к нему. но тут дело такое сам файл находиться у продавца по адресу . адрес у меня есть . но так как файл пополняеться товаром каждый день то смысла его скачивать наверно нет (ну конечно для разработки его надо скачать) и я так понял он будет как база даных. как я понял надо просто делать к нему запрос.
    значит для этого варианта XSLT неподходит ?
     
  5. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    делай парсинг XML-файла с помощью PHP, дергая его с сервера. Хотя для посещаемого проекта лучше заюзать Cron. В PHP уже встроена библиотека для работы с XML-файлами (SimpleXML)
     
  6. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Неправильно понял - нужно иметь XML, а не файл.
    Как получить XML - вариантов масса: можно сохранять файл у себя раз (или несколько) в сутки, можно запрашивать каждый раз.
     
  7. 999udaw

    999udaw Писатель

    Регистр.:
    8 сен 2008
    Сообщения:
    36
    Симпатии:
    0
    доброго дня.
    спасибо за советы хоть теперь знаю с чего начинать.

    так вот создал такой xml
    Код:
    <?xml version="1.0" encoding="windows-1250"?>
        <ValCurs Date="11.12.2008" name="Foreign Currency Market">
    
        <Valute ID="R01010">
    <NumCode>036</NumCode>
    <CharCode>AUD</CharCode>
    <Nominal>1</Nominal>
    <Name>Австралийский доллар</Name>
    <Value>18,3477</Value>
    </Valute>
    
        <Valute ID="R01035">
    <NumCode>826</NumCode>
    <CharCode>GBP</CharCode>
    <Nominal>1</Nominal>
    <Name>Фунт стерлингов Соединенного королевства</Name>
    <Value>41,3715</Value>
    </Valute>
    
        <Valute ID="R01090">
    <NumCode>974</NumCode>
    <CharCode>BYR</CharCode>
    <Nominal>1000</Nominal>
    <Name>Белорусских рублей</Name>
    <Value>12,7772</Value>
    </Valute>
    
        <Valute ID="R01215">
    <NumCode>208</NumCode>
    <CharCode>DKK</CharCode>
    <Nominal>10</Nominal>
    <Name>Датских крон</Name>
    <Value>48,5532</Value>
    </Valute>
    </ValCurs>
    
    потом такой парсер php

    Код:
    <?php
    
    function delteg($string)
    {
    $keyp=0;
    $out="";
           for ($i=0; $i<strlen($string); $i++) {
                   if ($string[$i]=="<"):
                     $keyp=1;
                   endif;
    
                   if ($keyp==0):
                     $out.=$string[$i];
                   endif;
    
                   if ($string[$i]==">"):
                     $keyp=0;
                   endif;
    
           }
           $out = substr($out,1,strlen($out)-3);
           return $out;
    }
    
    $num = array();
    $char = array();
    $nominal = array();
    $name = array();
    $value = array();
    
    $n = 0;
    
    $handle = fopen ("http://www.xml/news.xml", "r");
    while (!feof ($handle)) {
       $buffer = fgets($handle, 4096);
       if (strpos($buffer, "Num")>0) ($num[$n]=delteg($buffer));
       if (strpos($buffer, "Char")>0) ($char[$n]=delteg($buffer));
       if (strpos($buffer, "Nominal")>0) ($nominal[$n]=delteg($buffer));
       if (strpos($buffer, "Name")>0) ($name[$n]=delteg($buffer));
       if (strpos($buffer, "Value")>0) :
         $value[$n]=delteg($buffer);
         $n++;
       endif;
    
    
    }
    fclose ($handle);
    
    for ($i=0; $i<$n; $i++) {
           echo $num[$i]." - ".$char[$i]." - ".$nominal[$i]." - ".$name[$i]." - ".$value[$i]."<br>";
    }
    ?>
    
    и вот что получилось


    36 - UD - - встралийский доллар - 8,3477
    26 - BP - - унт стерлингов Соединенного королевства - 1,3715
    74 - YR - 000 - елорусских рублей - 2,7772
    08 - KK - 0 - атских крон - 8,5532
    40 - SD - - оллар США - 7,8671

    тоесть почти результат но вот непойму почему везде пропали первые буквы ведь должно быть вот так


    036 - AUD - 1 - Австралийский доллар - 18,3477
    826 - GBP - 1 - Фунт стерлингов Соединенного королевства - 41,3715
    974 - BYR - 1000 - Белорусских рублей - 12,7772
    208 - DKK - 10 - Датских крон - 48,5532
    840 - USD - 1 - Доллар США - 27,8671

    подскажите в чем здесь пробема

    пользуемся форумным тегом code по назначению
     
  8. zetar

    zetar

    Регистр.:
    18 май 2007
    Сообщения:
    497
    Симпатии:
    348
    все таки надо кешировать xml в файл
    а так при каждом заходе будет дергаться другой сайт
    партнерке это точно не понравится
    кешировать на 1 час достоверность данных будет
    нормальная , плюс если канал до сайта партнерки будет слабый то клиент может и не дождаться загрузки данных

    по разбору xml,можно взять фид скрпт любой PPC и посматреть как там сделано

    если надо могу скинуть пример фида
     
  9. fullgod

    fullgod

    Регистр.:
    19 апр 2008
    Сообщения:
    216
    Симпатии:
    33
    скинь сюда или в личку
     
  10. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    Мде. Если под данные сойдет обычная таблица, то лучше использовать любую JS-имплиментацию grid'а.

    Если нет, то парсить XML - глупо. Лучше уж тогда XSLT.
     
Статус темы:
Закрыта.