Autor Zpráva
Prochy
Profil
Zdravim,

snažim se tu zpracovat jeden XML soubor (pomocí simpleXML), ale nějak mi to hlava nebere. Mám třídu v které při vytvoření instance buďto vytvoří prázdný XML soubor nebo načte uvedený v parametru. Poté tam mám funkci, která mi zjistí pevnou linku a to následnovně:

        if (is_array($this->gdChildren->phoneNumber)) {
            foreach ($this->gdChildren->phoneNumber as $phoneNumber) {                
                if ($phoneNumber->attributes()->rel == self::HOME) {
                    return htmlspecialchars($phoneNumber);
                }
            }
        } else {            
            if ($this->gdChildren->phoneNumber->attributes()->rel == self::HOME) {
                return htmlspecialchars($this->gdChildren->phoneNumber);
            }
        }
        return null;

Problém je, že tady mi podmínka is_array() vyhodí false, ikdyž pokud si dumpnu $this->gdChildren, tak výpis je následující:
SimpleXMLElement(3) {
   name => SimpleXMLElement(3) {
      fullName => "Dvořák Jiří" (10)
      givenName => "Jiří" (6)
      familyName => "Dvořák" (8)
   }
   email => array(2) [
      0 => SimpleXMLElement(0) 
      1 => SimpleXMLElement(0) 
   ]
   phoneNumber => array(2) [
      0 => "5646546546" (10)
      1 => "123456789" (9)
   ]
}

A u phoneNumber je psaný array, tak nechápu, proč mi to vyhodnotí jako FALSE, druhá věc je ta, že pokud dumpnu $this->gdChildren->phoneNumber, tak to vypíše pouze jedno číslo:
SimpleXMLElement(1) {
   0 => "5646546546" (10)
}

Nějak mi něco uniká, ale nevim co. Předem děkuji za rady.


Moje chyba, měl sem se první podívat více po internetu. Musel jsem použít iterator_to_array().

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: