abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 23:11 | Komunita

    Německý kancléř Friedrich Merz (CDU) se během debaty s finalisty studentské vědecké soutěže Jugend forscht vyjádřil pro konec anonymity na internetu a vyslovil názor, že pro uživatele Internetu by měla platit podobná právní odpovědnost jako pro novináře tradičních médií. Na dotaz studenta, jak by se tedy povinnost uvádět pravé jméno slučovala s prací investigativních novinářů nebo ochranou jejich zdrojů, Merz neodpověděl, ve své

    … více »
    AfD 💙 | Komentářů: 0
    dnes 17:55 | IT novinky

    Společnost Fujitsu představila FUJITSU-MONAKA CPU a Fujitsu MONAKA Server. Navrženo, vyvinuto a vyrobeno v Japonsku. Pro suverénní AI infrastrukturu.

    Ladislav Hagara | Komentářů: 0
    dnes 16:44 | IT novinky

    Předprodej v květnu představených notebooků Googlebook, nástupců notebooků Chromebook, bude spuštěn v pondělí 21. září.

    Ladislav Hagara | Komentářů: 3
    včera 23:22 | Nová verze

    Byla vydána betaverze Fedora Linuxu 45 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 20. října. S konzolí kmscon místo fbcon. Současně byla vydána betaverze Fedora Linux Asahi Remixu 45. S podporou čipů M3.

    Ladislav Hagara | Komentářů: 1
    včera 21:44 | Nová verze

    Po půl roce vývoje od vydání verze 50 bylo vydáno GNOME 51 s kódovým názvem "A Coruña" (Mastodon). Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře. Videopředstavení na PeerTube a YouTube.

    Ladislav Hagara | Komentářů: 19
    včera 20:44 | IT novinky

    OpenAI spolupracuje s konkurenty Anthropic a Google DeepMind ze skupiny Alphabet na bezpečnosti umělé inteligence (AI). Globální obavy ohledně existenčních rizik umělé inteligence vzrostly poté, co se o víkendu sešli vedoucí předních amerických firem z odvětví AI a vyzvali k pozastavení vývoje technologie.

    Ladislav Hagara | Komentářů: 4
    včera 20:33 | IT novinky

    Evropská unie navrhne zákaz sociálních sítí, online her a chatbotů pro děti mladší 13 let a možnost účtu pro děti do 15 let jen se souhlasem rodičů, oznámila šéfka Evropské komise Ursula von der Leyenová v dnešním projevu ve Štrasburku. Návrh předpisu nazvaného EU Kids Act představí Evropská komise ve čtvrtek. Von der Leyenová zdůraznila, že chce, aby se rovněž změnilo základní pravidlo: platformy budou muset dokázat, že jsou bezpečné.

    … více »
    Ladislav Hagara | Komentářů: 32
    15.9. 22:55 | Nová verze

    Byla vydána Java 27 / JDK 27. Nových vlastností (JEP - JDK Enhancement Proposal) je 9.

    Ladislav Hagara | Komentářů: 0
    15.9. 17:44 | Nová verze

    Byl vydán Mozilla Firefox 156.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vestavěný prohlížeč PDF se nyní spouští o 45 % rychleji. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 156 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    15.9. 14:11 | Nová verze

    Článek na Raspberry Pi představuje nový vzhled desktopu operačního systému Raspberry Pi OS v aktuálním vydání 2026-09-15.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (21%)
    Celkem 2687 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: PHP + SimpleXML objekt v cyklu FOR

    21.9.2009 20:03 Open Mage | skóre: 24 | Lom
    PHP + SimpleXML objekt v cyklu FOR
    Přečteno: 1023×

    Ahoj,

    mam potize v importu XML souboru pomoci SimpleXML v PHP. Data jsou bez potizi, ale ke kazdymu zaznamu chci i ID, ktery je jako atribut. Normalne pomoci foreach kdyz nemusim resit pozici "kurzoru" v objektu SimpleXML to jde jak po masle. Ale pokud to delam pro FOR cyklus, jelikoz resim jednotlivy casti a mam na to nejakej algoritmus, kterej to rozdeli a importuje postupne - tak jsou potize. Ilustracni cast kodu vytrzena z kontextu vypada asi takhle:

    $sxml = simplexml_load_file($this->EXTRACT_FOLDER . $this->xmlFile);

    for ($i = $startingWith; $i < $limit; $i++) {
    $vmAtributes = $sxml->ELEMENT[$i]->attributes();
    $vmAtr = $vmAtributes['id'];


    Tenhle kod ovsem nahlasi nize uvedenou hlasku a at delam co delam, proste se touhle jinak beznou cestou nikam nedostavam. Jediny co vim, ze kdyz dam natvrdo jeste pred FOR cyklem treba $sxml->ELEMENT[12345]->attributes() ... tak to projde, ale do cyklu se nejak nedostane zrejme ani samotny objekt SimpleXML - tam uz nezjistim nejen atributy elementu, ale ani vnitrni prvky pomoci inkrementovane hodnoty. Setkal se s tim nekdo? Mozna delam nejak zacatecnickou chybu, o tom, ze bych nemohl volat instanci tridy inicializovanou vne cyklu nejak nevim, ale uz to tak skoro vypada... Uz zacinam byt trochu nervozni :)

    Fatal error: Call to a member function attributes() on a non-object in

    Diky moc,
    Standa

    Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747

    Odpovědi

    21.9.2009 20:49 error414 | skóre: 12 | blog: error414
    Rozbalit Rozbalit vše Re: PHP + SimpleXML objekt v cyklu FOR

    $myxml ='<?xml version="1.0"?>
    <main  version="1.0">
      <polozky>
          <polozka id="1">
            <cena>25</cena>
            <name>hustej mobil</name>
          </polozka>
          <polozka  id="2">
            <cena>255</cena>
            <name>mycka rybicek</name>
          </polozka>
      </polozky>
    </main>';

     
    $xml = simplexml_load_string($myxml);
    for($i = 0; $i < count($xml->polozky->polozka); $i++){
      echo $xml->polozky->polozka[$i]->cena;
      echo $xml->polozky->polozka[$i]['id'];
    }

    snad ti to pomuze

    22.9.2009 18:04 Open Mage | skóre: 24 | Lom
    Rozbalit Rozbalit vše Re: PHP + SimpleXML objekt v cyklu FOR

    Tyhle varianty uz jsem zkousel, ale kdepak. Pes bude bud zakopanej jinde nebo nevim. Pokud bych ty tvy dva ECHO prikazy mel pred smyckou FOR a misto $i dosadil index v rozsahu, kterej v XML souboru skutecne je, pak se to zobrazi ok. Pokud to samy udelam ve smycce, zobrazi se prazdno... jako by tam fakt ten objekt (u tebe $xml) nebyl viditelnej.

    Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
    22.9.2009 18:13 Open Mage | skóre: 24 | Lom
    Rozbalit Rozbalit vše Re: PHP + SimpleXML objekt v cyklu FOR

    Jeste doplnim. Pokud v tom cyklu FOR dam vypsat (ac je to samo blbost) urcitej prvek natvrdo (treba echo $sxml->ELEMENT[100]->PRVEK;), tak to projde. Takze co neumi uvnitr toho cyklu je echo $sxml->ELEMENT[$i]->PRVEK. Nevim ovsem proc, jelikoz zase necham-li echo $i, tak hezky vypise celou tu radu indexu a nema problem. Nemusi byt to $i nejak v uvozovkach nebo neco? Dalsi dulezita informace je, ze takovy kazdy prvek vkladam na danou pozici do pole a to pole pak vlozim jako jeden prvek do hlavniho pole - na konci pruchodu tim FOR cyklem.

    Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
    22.9.2009 20:25 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: PHP + SimpleXML objekt v cyklu FOR
    Ta poslední důležitá informace se mi zdá irelevantní, pokud to neumíte ani vypsat, tak je jedno že se to někam snažíte vkládat.

    Hoďte sem ten fragment kódu který před for cyklem vypisuje prvky (s indexy natvrdo), v cyklu vypisuje indexy správně jako čísla ale prvky s daným indexem prázdné. Viděl bych to na nějaký překlep, viditelnost proměnných problém nebude.
    24.9.2009 21:11 Open Mage | skóre: 24 | Lom
    Rozbalit Rozbalit vše Re: PHP + SimpleXML objekt v cyklu FOR

    Tak jsem na to prisel. Chyba byla jak jinak na moji strane, ikdyz dost skryta - do cyklu FOR jsem predaval v ramci OOP hodnoty pro prvni a druhy argument a pri vypsani samotneho id pruchodu cyklem bylo vse ok. Nicmene poradove cislo v SimpleXML objektu je zrejme potreba predavat explicitne jak INT... Tudiz vse vyresilo dosazeni funkce intval:

    for($i = intval($startingWith); $i < intval($limit); $i++) {

    treba to pomuze i nekomu dalsimu. Stane se to zrejme pouze v pripade kdy je FOR v metode, ktera prijima odjinud argumenty $startingWith a $limit. Hledal jsem chybu jinde, nez by clovek cekal, ze bude...

    Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.