Portál AbcLinuxu, 9. května 2025 23:16

Dotaz: PHP a XML

15.5.2014 19:56 Petr
PHP a XML
Přečteno: 237×
Odpovědět | Admin
Ahoj, začínám z xml a chtěl bych předávat data místo pole pomocí xml ale chtěl bych radu od zkušenějších, proč se mi nevypíšou všechny jména ? Jednotlivá jména jdou vypsat. Děkuji
$xml = simplexml_load_string("<users>
                              <jmeno>Karel</jmeno>
                              <jmeno>Pavel</jmeno>
                              <jmeno>Libor</jmeno>
                              <jmeno>Marek</jmeno>>
                              </users>");
echo $xml->users;
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.5.2014 20:26 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP a XML
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ta funkce odstraní kořenový element. Po drobných úpravách to funguje.
<?php
$xml = simplexml_load_string(<<<EOT
<users>
    <jmeno>Karel</jmeno>
    <jmeno>Pavel</jmeno>
    <jmeno>Libor</jmeno>
    <jmeno>Marek</jmeno>
</users>
EOT
);
print_r($xml->jmeno);
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
15.5.2014 20:42 Petr
Rozbalit Rozbalit vše Re: PHP a XML
Děkuji ale print_r($xml->users); stále jména nevypíše :-(
15.5.2014 20:46 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP a XML
Podívej se pořádně, mám tam print_r($xml->jmeno);
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
15.5.2014 21:14 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: PHP a XML
Ten příklad funguje, pokud, děláte někde chybu.

Jinak $xml->users je iterátor, je proto třeba
foreach ($xml->users as $user){
print (string) $user;
}
U simplexml je potřeba hlavně pochopit jak se co zapisuje a co to ve skutečnosti dělá, nevím jestli to bude hned zkraje srozumitelné, nicméně je to takto:
1) properties denote element iterators
2) numeric indices denote elements
3) non numeric indices denote attributes
4) string conversion allows to access TEXT
5) xpath returns simple array of elements

Warning! Assign notation $oEl{'elm'} = 'content'; handle properly xml special 
characters, but method notation $oEl->addChild('elm', 'content'); NOT HANDLE 
special xml characters!
-- OldFrog
15.5.2014 21:15 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: PHP a XML
Ten příklad funguje, pokud, děláte někde chybu.
Pardon, mělo to být
Ten příklad funguje, pokud ne, děláte někde chybu.
-- OldFrog

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.