uw              Thu Mar 15 09:30:02 2001 EDT

  Modified files:              
    /php4/pear/XML      Parser.php 
  Log:
  - lots of whitespace (tabs vs. spaces)
  - added basic inline docs
  - added error handling to the constructor
  
  
  
Index: php4/pear/XML/Parser.php
diff -u php4/pear/XML/Parser.php:1.5 php4/pear/XML/Parser.php:1.6
--- php4/pear/XML/Parser.php:1.5        Tue Jan  9 17:01:58 2001
+++ php4/pear/XML/Parser.php    Thu Mar 15 09:30:01 2001
@@ -35,155 +35,255 @@
  * XML Parser class.  This is an XML parser based on PHP's "xml" extension,
  * based on the bundled expat library.
  *
- * @author Stig Bakken <[EMAIL PROTECTED]>
- *
+ * @author  Stig Bakken <[EMAIL PROTECTED]>
+ * @version $id $
  */
 class XML_Parser extends PEAR {
     // {{{ properties
 
+    /**
+    * XML parser handle
+    *
+    * @var  resource  xml_parser
+    */
     var $parser;
+    
+    /**
+    *
+    * @var  resource    fopen
+    */
     var $fp;
+    
+    /**
+    *
+    * @var  boolean
+    */
     var $folding = true;
+    
+    /**
+    *
+    * @var  string
+    */
     var $mode;
+    
 
     // }}}
     // {{{ constructor()
 
+    /**
+    * Creates a xml parser.
+    *
+    * @param    string  character set - see the xml_parser_create() PHP docs.
+    * @param    string
+    * @throws   XML_Parser_Error
+    */
     function XML_Parser($charset = 'UTF-8', $mode = "event") {
-       $this->PEAR();
-       $xp = @xml_parser_create($charset);
-       if (is_resource($xp)) {
-           $this->parser = $xp;
-           $this->setMode($mode);
-           xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING,
-                                 $this->folding);
-       }
+        
+        $this->PEAR();
+        
+        $xp = @xml_parser_create($charset);
+        if (is_resource($xp)) {
+        
+            $this->parser = $xp;
+            $this->setMode($mode);
+            xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, $this->folding);
+            
+        } else {
+            
+            return new XML_Parser_Error("Can't create xml parser");
+            
+        }
+        
     }
-
     // }}}
 
     // {{{ setMode()
 
+    /**
+    *
+    * @param    string
+    * @access   public
+    */
     function setMode($mode) {
-       $this->mode = $mode;
-       $xp = $this->parser;
-       xml_set_object($xp, $this);
-       switch ($mode) {
-           case "func":
-               xml_set_element_handler($xp, "funcStartHandler", "funcEndHandler");
-               break;
-           case "event":
-               if (method_exists($this, "startHandler") ||
-                   method_exists($this, "endHandler")) {
-                   xml_set_element_handler($xp, "startHandler", "endHandler");
-               }
-       }
-       if (method_exists($this, "cdataHandler")) {
-           xml_set_character_data_handler($xp, "cdataHandler");
-       } else {
-           xml_set_character_data_handler($xp, "");
-       }
-       if (method_exists($this, "defaultHandler")) {
-           xml_set_default_handler($xp, "defaultHandler");
-       } else {
-           xml_set_default_handler($xp, "");
-       }
-       if (method_exists($this, "piHandler")) {
-           xml_set_processing_instruction_handler($xp, "piHandler");
-       } else {
-           xml_set_processing_instruction_handler($xp, "");
-       }
-       if (method_exists($this, "unparsedHandler")) {
-           xml_set_unparsed_entity_decl_handler($xp, "unparsedHandler");
-       } else {
-           xml_set_unparsed_entity_decl_handler($xp, "");
-       }
-       if (method_exists($this, "notationHandler")) {
-           xml_set_notation_decl_handler($xp, "notationHandler");
-       } else {
-           xml_set_notation_decl_handler($xp, "");
-       }
-       if (method_exists($this, "entityrefHandler")) {
-           xml_set_external_entity_ref_handler($xp, "entityrefHandler");
-       } else {
-           xml_set_external_entity_ref_handler($xp, "");
-       }
+    
+        $this->mode = $mode;
+        
+        $xp = $this->parser;
+        xml_set_object($xp, $this);
+        
+        switch ($mode) {
+        
+            case "func":
+                xml_set_element_handler($xp, "funcStartHandler", "funcEndHandler");
+                break;
+                
+            case "event":
+                if (method_exists($this, "startHandler") ||
+                    method_exists($this, "endHandler")) {
+                    xml_set_element_handler($xp, "startHandler", "endHandler");
+                }
+                break;
+        }
+        
+        if (method_exists($this, "cdataHandler")) {
+            xml_set_character_data_handler($xp, "cdataHandler");
+        } else {
+            xml_set_character_data_handler($xp, "");
+        }
+
+        if (method_exists($this, "defaultHandler")) {
+            xml_set_default_handler($xp, "defaultHandler");
+        } else {
+            xml_set_default_handler($xp, "");
+        }
+
+        if (method_exists($this, "piHandler")) {
+            xml_set_processing_instruction_handler($xp, "piHandler");
+        } else {
+            xml_set_processing_instruction_handler($xp, "");
+        }
+
+        if (method_exists($this, "unparsedHandler")) {
+            xml_set_unparsed_entity_decl_handler($xp, "unparsedHandler");
+        } else {
+            xml_set_unparsed_entity_decl_handler($xp, "");
+        }
+        
+        if (method_exists($this, "notationHandler")) {
+            xml_set_notation_decl_handler($xp, "notationHandler");
+        } else {
+            xml_set_notation_decl_handler($xp, "");
+        }
+        
+        if (method_exists($this, "entityrefHandler")) {
+            xml_set_external_entity_ref_handler($xp, "entityrefHandler");
+        } else {
+            xml_set_external_entity_ref_handler($xp, "");
+        }
+        
     }
-
     // }}}
     // {{{ setInputFile()
 
+    /**
+    * Defines 
+    *
+    * @param    string      Filename (full path)
+    * @return   resource    fopen handle of the given file
+    * @throws   XML_Parser_Error
+    * @see      setInput(), parse()
+    * @access   public
+    */
     function setInputFile($file) {
-       $fp = @fopen($file, "r");
-       if (is_resource($fp)) {
-           $this->fp = $fp;
-           return $fp;
-       }
-       return new XML_Parser_Error($php_errormsg);
+    
+        $fp = @fopen($file, "r");
+        if (is_resource($fp)) {
+            $this->fp = $fp;
+            return $fp;
+        }
+        
+        return new XML_Parser_Error($php_errormsg);
     }
 
     // }}}
     // {{{ setInput()
 
+    /**
+    * Sets the file handle to use with parse().
+    * 
+    * @param    resource    fopen
+    * @access   public
+    * @see      parse(), setInputFile()
+    */
     function setInput($fp) {
-       if (is_resource($fp)) {
-           $this->fp = $fp;
-           return true;
-       }
-       return new XML_Parser_Error("not a file resource");
+    
+        if (is_resource($fp)) {
+            $this->fp = $fp;
+            return true;
+        }
+        
+        return new XML_Parser_Error("not a file resource");
     }
 
     // }}}
     // {{{ parse()
 
+    /**
+    * Central parsing function.
+    * 
+    * @throws   XML_Parser_Error
+    * @return   boolean true on success
+    * @see      parseString()
+    * @access   public
+    */
     function parse() {
-       if (!is_resource($this->fp)) {
-           return new XML_Parser_Error("no input");
-       }
-       if (!is_resource($this->parser)) {
-           return new XML_Parser_Error("no parser");
-       }
-       while ($data = fread($this->fp, 2048)) {
-           $err = $this->parseString($data, feof($this->fp));
-           if (PEAR::isError($err)) {
-               return $err;
-           }
-       }
-       return true;
+    
+        if (!is_resource($this->fp)) {
+            return new XML_Parser_Error("no input");
+        }
+        
+        if (!is_resource($this->parser)) {
+            return new XML_Parser_Error("no parser");
+        }
+        
+        while ($data = fread($this->fp, 2048)) {
+            $err = $this->parseString($data, feof($this->fp));
+            if (PEAR::isError($err)) {
+                return $err;
+            }
+        }
+        
+        return true;
+    
     }
 
     // }}}
     // {{{ parseString()
 
+    /**
+    * Parses a string.
+    * 
+    * @param    string  XML data
+    * @param    boolean ???
+    * @throws   XML_Parser_Error
+    * @return   mixed   true on success or a string with the xml parser error
+    */
     function parseString($data, $eof = false) {
-       if (!is_resource($this->parser)) {
-           return new XML_Parser_Error("no parser");
-       }
-       if (!xml_parse($this->parser, $data, $eof)) {
-           $err = new XML_Parser_Error($this->parser);
-           xml_parser_free($this->parser);
-           return $err;
-       }
-       return true;
+    
+        if (!is_resource($this->parser)) {
+            return new XML_Parser_Error("no parser");
+        }
+        
+        if (!xml_parse($this->parser, $data, $eof)) {
+            $err = new XML_Parser_Error($this->parser);
+            xml_parser_free($this->parser);
+            return $err;
+        }
+        
+        return true;
     }
 
     // }}}
     // {{{ funcStartHandler()
 
     function funcStartHandler($xp, $elem, $attribs) {
-       if (method_exists($this, $elem)) {
-           call_user_method($elem, $this, $xp, $elem, &$attribs);
-       }
+        
+        if (method_exists($this, $elem)) {
+            call_user_method($elem, $this, $xp, $elem, &$attribs);
+        }
+        
     }
 
     // }}}
     // {{{ funcEndHandler()
 
     function funcEndHandler($xp, $elem) {
-       $func = $elem . '_';
-       if (method_exists($this, $func)) {
-           call_user_method($func, $this, $xp, $elem);
-       }
+    
+        $func = $elem . '_';
+        if (method_exists($this, $func)) {
+            call_user_method($func, $this, $xp, $elem);
+        }
+        
     }
 
     // }}}
@@ -197,21 +297,19 @@
     // }}}
     // {{{ constructor()
 
-    function XML_Parser_Error($msgorparser = 'unknown error',
-                             $code = 0,
-                             $mode = PEAR_ERROR_RETURN,
-                             $level = E_USER_NOTICE) {
-       if (is_resource($msgorparser)) {
-           $code = xml_get_error_code($msgorparser);
-           $msgorparser =
-               sprintf("%s at XML input line %d",
-                       xml_error_string(xml_get_error_code($msgorparser)),
-                       xml_get_current_line_number($msgorparser));
-       }
-       $this->PEAR_Error($msgorparser, $code, $mode, $level);
+    function XML_Parser_Error($msgorparser = 'unknown error', $code = 0, $mode = 
+PEAR_ERROR_RETURN, $level = E_USER_NOTICE) {
+
+        if (is_resource($msgorparser)) {
+            $code = xml_get_error_code($msgorparser);
+            $msgorparser = sprintf("%s at XML input line %d",
+                                    
+xml_error_string(xml_get_error_code($msgorparser)),
+                                    xml_get_current_line_number($msgorparser)
+                                  );
+        }
+        $this->PEAR_Error($msgorparser, $code, $mode, $level);
+        
     }
 
     // }}}
 }
-
-?>
+?>
\ No newline at end of file

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to