2011-08-24 9 views
12

Sto provando a creare un widget in Wordpress e sto riscontrando un problema durante la creazione di un oggetto SimpleXMLElement.Non è possibile trovare SimpleXMLElement quando si lavora con spazi dei nomi

Ecco il codice:

namespace GenieKnows_Search; 

class GenieKnows_Search_Widget extends \WP_Widget { 
    //Constructor 
    function __construct() { 
     parent::__construct('genieknows_search_widget', 'GenieKnows_Search_Widget'); 
    } 

    //Irrelevant Code. Removed for readability. 

    //Return the XML 
    function retrieve_gk_xml() { 
      $xml = new SimpleXMLElement($this->create_gk_xml(), 0, true); //Line 114 
      return $xml->xpath('/feed/results/sponsored/listing'); 
    } 
} 

Ecco l'errore:

PHP Fatal error: Class 'GenieKnows_Search\SimpleXMLElement' not found in /var/www/myticketpick.com/wp-content/plugins/genieknows-search/genieknows_search.php on line 114

Sembrerebbe che sta cercando di guardare per la classe SimpleXML interno della mia GenieKnows_Search spazio dei nomi, però io sono in perdita sul perché.

Qualche idea sul motivo per cui si sta verificando questo errore e su come posso risolverlo?

risposta

33

La correzione era che avevo bisogno di aggiungere uno slash() davanti a SimpleXMLElement:

$xml = new \SimpleXMLElement($this->create_gk_xml(), 0, true); 

Come indicato here.

+3

Questo non funziona per me. Sto usando PHP 5.6, libxml, SimpleXML abilitato. – hienbt88

+1

grazie per la tua risposta, mi ha davvero aiutato – kumar

Problemi correlati