Domov arrow 4. XML arrow 4.3 SimpleXML arrow 4.3.2 Dostop do otrok in atributov


4.3.2 Dostop do otrok in atributov Natisni E-pošta
Ko je XML dokument enkrat naložen in imaš predmet SimpleXMLElement, se lahko dostopa do otroških vozlov na več načinov. Prvi način je najbolj enostaven. Ko SimpleXML razčleni XML dokument, pretvori vse XML elemente v lastnosti novonastalega predmeta SimpleXMLElement. Dodatno pretvori vse XML atribute v asociativno polje, ki je lahko dostopno iz lastnosti kateri pripada. Vsaka od teh lastnosti je poleg tega tudi primerek SimpleXMLElement-a, tako da se olajša dostop do otroških vozlov ne glede na gnezdeni nivo. Primer:

$ozimnica = new SimpleXMLElement('ozimnica.xml, NULL, true);
foreach ($ozimnica->sadje as $sadje)
{
    echo $sadje[’lastnik’] . "\n";
    echo $sadje ->vrsta . "\n";
    echo $sadje ->sorta . "\n";
    echo $sadje ->kolicina . "\n\n";
}

Slaba stran tega pristopa je, da je potrebno poznati imena vseh elementov in atributov v XML dokumentu. SimpleXML pa omogoča tudi dostop do otrok in atributov brez poznavanja njihovih imen. SimpleXML ti celo pove njihova imena.

Naslednji primer prikaže uporabo SimpleXMLElement::children(), SimpleXMLElement:attributes() in SimpleXMLElement::getName() za točno ta namen:

foreach ($ozimnica->children as $otrok)
{
    echo $otrok->getName() . ":\n";
    // pridobi atribute tega elementa
    foreach ($otrok->attributes() as $atr)
    {
        echo ' '.$atr->getName().':'.$atr."\n";
    }
    // dobi otroke
    foreach ($otrok->children() as $podotrok)
    {
        echo ' '.$podotrok->getName().':'.$podotrok."\n";
    }
    echo  "\n";
}

 


© 2007-2008 PHP, MySQL, XML, OOP, varnost