Tryag File Manager
Home
-
Turbo Force
Current Path :
/
home
/
cluster1
/
data
/
bu01
/
1121861
/
jlex
/
nahuatl
/
php4
/
Upload File :
New :
File
Dir
//home/cluster1/data/bu01/1121861/jlex/nahuatl/php4/sense_checker.php4
<? class sense_checker { var $parser; var $last_field; var $errors; var $data; var $se = array("ss","ssa","sso","ssao","psa","pso"); var $ss = array("se","src"); var $ssa = array("sea","src"); var $sso = array("seo","src"); var $ssao = array("seao","src"); var $pna = array("ss","ssa","ssao","psa","pso","src","snd_am"); var $pno = array("ss","sso","ssao","psa","pso","src","snd_oa"); var $pea = array("pna","src","snd_am"); var $peo = array("pno","src","snd_oa"); var $psa = array("pea","src","snd_am"); var $pso = array("peo","src","snd_oa"); var $fields = array("ss","ssa","sso","ssao","pna","pea","psa","pno","peo","pso"); function sense_checker() { $this->last_field = ""; $this->errors = array(); $this->found_error = false; } function startHandler($xp,$element,$attribs) { $element = strtolower($element); } function endHandler($xp,$element) { $element = strtolower($element); if(in_array($element,$this->fields)) { if(!in_array($this->last_field,$this->$element)) { $line_number = xml_get_current_line_number($xp); $this->errors[$this->ref][] = "Line ".$line_number." : \\".$element." ".substr($this->data,0,10)."..."; } } else if($element == "ref") { $this->ref = $this->data; } $this->last_field = $element; $this->data = ""; } function cDataHandler($xp,$data) { $data = trim($data); if($data != "") { $data = ereg_replace("&","&",$data); $data = ereg_replace("<","<",$data); $data = ereg_replace(">",">",$data); $data = utf8_encode($data); $this->data .= $data; } } function find_errors($xml) { $this->parser = xml_parser_create(); xml_set_object($this->parser,$this); xml_set_element_handler($this->parser,"startHandler","endHandler"); xml_set_character_data_handler($this->parser,"cDataHandler"); $in = fopen($xml,"r"); while($line = fgets($in)) { xml_parse($this->parser,$line,false); } foreach($this->errors as $ref=>$errors) { foreach($errors as $error) { echo "ref: $ref : ".$error."\n"; } } } } /* $sc = new sense_checker(); $sc->find_errors("ActiveNahuatl_2005_august_4.xml"); */ ?>