function fromXmlFile($descfile)
    {
        if (!file_exists($descfile) || !is_file($descfile) || !is_readable($descfile) ||
             (!$fp = fopen($descfile, 'r'))) {
            require_once 'PEAR.php';
            return PEAR::raiseError("Unable to open $descfile");
        }

        // read the whole thing so we only get one cdata callback
        // for each block of cdata
        fclose($fp);
        $data = file_get_contents($descfile);
        return $this->fromXmlString($data);
    }
function fromXmlFile($descfile)
    {
        if (!file_exists($descfile) || !is_file($descfile) || !is_readable($descfile) ||
             (!$fp = fopen($descfile, 'r'))) {
            require_once 'PEAR.php';
            return PEAR::raiseError("Unable to open $descfile");
        }

        // read the whole thing so we only get one cdata callback
        // for each block of cdata
        fclose($fp);
        $data = file_get_contents($descfile);
        return $this->fromXmlString($data);
    }
function fromXmlFile ( $ descfile ) { if ( ! file_exists ( $ descfile ) || ! is_file ( $ descfile ) || ! is_readable ( $ descfile ) || ( ! $ fp = fopen ( $ descfile , 'r' ) ) ) { require_once 'PEAR.php' ; return PEAR :: raiseError ( "Unable to open $descfile" ) ; } // read the whole thing so we only get one cdata callback // for each block of cdata fclose ( $ fp ) ; $ data = file_get_contents ( $ descfile ) ; return $ this -> fromXmlString ( $ data ) ; }
Parse a channel.xml file.  Expects the name of
a channel xml file as input.

@param string  $descfile  name of channel xml file
@return bool success of parsing
Parse a channel . xml file . Expects the name of a channel xml file as input .