phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] CVS: phpgwapi/inc class.xml_check.inc.php,NONE,1.1 cl


From: Dan Kuykendall <address@hidden>
Subject: [Phpgroupware-cvs] CVS: phpgwapi/inc class.xml_check.inc.php,NONE,1.1 class.xpath.inc.php,NONE,1.1
Date: Mon, 23 Sep 2002 18:36:13 -0400

Update of /cvsroot/phpgroupware/phpgwapi/inc
In directory subversions:/tmp/cvs-serv19315

Added Files:
        class.xml_check.inc.php class.xpath.inc.php 
Log Message:
These are useful classes we can use

--- NEW FILE ---
<?php
// 
##################################################################################
// Title                     : Class XML_check
// Version                   : 1.0
// Author                    : Luis Argerich (address@hidden)
// Last modification date    : 07-10-2002
// Description               : A class to check if documents are well formed
//                             XML reporting error msg,line and col if not or
//                             statistics about the document if it is well 
formed.
// 
##################################################################################
// History: 
// 07-10-2002                : First version of this class.
// 
##################################################################################
// To-Dos:
//
// 
##################################################################################
// How to use it:
// Read the documentation in class_xml_check.html
// 
##################################################################################

class XML_check {
  var $error_code;
  var $error_line;
  var $error_col;
  var $error_msg;
  var $size;
  var $elements;
  var $attributes;
  var $texts;
  var $text_size;
  
  function get_error_code() {
    return $this->error_code; 
  }
  
  function get_error_line() {
    return $this->error_line; 
  }
  
  function get_error_column() {
    return $this->error_col; 
  }
  
  function get_error_msg() {
    return $this->error_msg; 
  }
  
  function get_full_error() {
    return "Error: ".$this->error_msg." at line:".$this->error_line ." 
column:".$this->error_col;
  }
  
  function get_xml_size() {
    return $this->size; 
  }
  
  function get_xml_elements() {
    return $this->elements; 
  }
  
  function get_xml_attributes() {
    return $this->attributes; 
  }
  
  function get_xml_text_sections() {
    return $this->texts; 
  }
  
  function get_xml_text_size() {
    return $this->text_size; 
  }
  
  function check_url($url) {
    $this->_init();
    $this->parser = xml_parser_create_ns("",'^');
    xml_set_object($this->parser,&$this);
    xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false);
    xml_set_element_handler($this->parser, "_startElement", "_endElement");
    xml_set_character_data_handler($this->parser,"_data");
    if (!($fp = fopen($url, "r"))) {
      $this->error="Cannot open $rddl";
      return false;
    }
    while ($data = fread($fp, 4096)) {
      $this->size+=strlen($data);
      if (!xml_parse($this->parser, $data, feof($fp))) {
        $this->error_code = xml_get_error_code($this->parser);
        $this->error_line = xml_get_current_line_number($this->parser);
        $this->error_col = xml_get_current_column_number($this->parser);
        $this->error_msg = xml_error_string($this->error_code);
        return false;                    
      }
    }
    xml_parser_free($this->parser); 
    return true;
  }
  
  function _init() {
    $this->error_code = '';
    $this->$error_line = '';
    $this->$error_col = '';
    $this->$error_msg = '';
    $this->$size = 0;
    $this->$elements = 0;
    $this->$attributes = 0;
    $this->$texts = 0;
    $this->$text_size = 0; 
  }
  
  function _startElement($parser,$name,$attrs) {
    $this->elements++;
    $this->attributes+=count($attrs);
  }
  
  function _endElement($parser,$name) {
    
  }
  
  function _data($parser,$data) {
    $this->texts++;
    $this->text_size+=strlen($data);
  }
  
  function check_string($xml) {
    $this->_init();
    $this->parser = xml_parser_create_ns("",'^');
    xml_set_object($this->parser,&$this);
    xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false);
    xml_set_element_handler($this->parser, "_startElement", "_endElement");
    xml_set_character_data_handler($this->parser,"_data");
    $this->size+=strlen($xml);
    if (!xml_parse($this->parser, $xml, true)) {
      $this->error_code = xml_get_error_code($this->parser);
      $this->error_line = xml_get_current_line_number($this->parser);
      $this->error_col = xml_get_current_column_number($this->parser);
      $this->error_msg = xml_error_string($this->error_code);
      return false;                    
    }
    xml_parser_free($this->parser); 
    return true;
  } 
  
  
}



?>


***** Error reading new file: [Errno 2] No such file or directory: 
'class.xpath.inc.php'




reply via email to

[Prev in Thread] Current Thread [Next in Thread]