COPY: Hľadáme CZ, SK a HU prekladateľov a copywriterov
Zobrazují se odpovědi 1 až 4 z 4

XML heureka do XLS nebo CSV

  1. Dobrý den,

    nedokáže mi někdo poradit, jak mám dostat XML feed heureky do tabulkové podoby? Jednoúrovňové XML problém není, ale mám probrém s parametry, které pak následně obsahují název parametru a jeho hodnotu. Toto se mi nedaří nijak dostat do klasické tabulky.

    Děkuji za radu

  2. Co se právě děje na Webtrhu?
    Alexdzj poptává: Programátor Laravel – podpora
    Martin Černý2 poptává: UI a UX
    Michal89 poptává: Vue.js developer pro krypto webovou aplikaci
  3. Čemu říkáte "klasická tabulka" nebo "tabulková podoba"? Pokud je XML flexibilní, udělejte si např. strukturu "název hodnoty | hodnota". A tam uložíte cokoliv.

  4. Citace Původně odeslal shion.uzuki Zobrazit příspěvek
    Čemu říkáte "klasická tabulka" nebo "tabulková podoba"? Pokud je XML flexibilní, udělejte si např. strukturu "název hodnoty | hodnota". A tam uložíte cokoliv.

    Klasická tabulka je ve formátu:
    První řádek - hlavička
    zbylé řádky - hodnoty

    XML má formát:
    shopitem
    údaj1
    /údaj1
    údaj2
    /údaj2
    .
    .
    .
    param
    param1jméno
    /param1jméno
    param1hodnota
    /param1hodnota
    param2jméno
    /param2jméno
    param2hodnota
    /param2hodnota
    .
    .
    .
    /shopitem

    S xml jsem si radil tak, že jsem je naimportoval do accesu nebo do SQL, ale kvůli vnořenému parametru se mi to nedaří a ani acces si s tím neporadil.

  5. Kód:
    $xml = simplexml_load_file('heureka01.xml'); // https://sluzby.heureka.cz/napoveda/ukazka-xml-feedu-obleceni/
    $ATTRIBUTES = explode(' ', 'ITEM_ID PRODUCTNAME PRODUCT DESCRIPTION URL IMGURL IMGURL_ALTERNATIVE MANUFACTURER CATEGORYTEXT EAN PRODUCTNO PARAM DELIVERY_DATE DELIVERY ITEMGROUP_ID');
    $SEPARATOR = "\t"; // nebo ";"
    foreach ($xml as $item) {
        echo "SHOPITEM\n";
        foreach ($ATTRIBUTES as $attr) {
            if (isset($item->$attr)) 
                if ($attr == 'PARAM') {
                    echo $SEPARATOR . $attr . "\n";
                    foreach ($item->$attr as $subattr) {
                        echo $SEPARATOR . $SEPARATOR . $subattr->PARAM_NAME . $SEPARATOR . $subattr->VAL . "\n";
                    }
                } else {
                    $value = (array)$item->$attr; 
                    echo $SEPARATOR . $attr . $SEPARATOR . (isset($value[0]) ? $value[0] : '') . "\n";
                }
        }    
    }

Hostujeme u Server powered by TELE3