lastChild; $start = $doc->documentElement; $k = 0; //number of students/marks $s = 0; //total $students = $start->getElementsByTagName("student"); foreach( $students as $student ){ // foreach works with a NodeList ! $name = $student->getAttribute("name"); $mark = $student->getAttribute("mark"); echo "$name 's mark is $mark\n"; $s += $mark; $k++; } if( $k == 0 ){ die("empty data"); }else{ return $s/$k; } }// average_1 function reading ($fichIn, $schmFich){ $doc = new DOMDocument(); $doc->load($fichIn); if( !$doc->schemaValidate($schmFich) ){ foreach( libxml_get_errors() as $error ){ echo "\t$error->message"; } die("Invalid document\n"); } $moy = average_1($doc); echo "\nAverage : $moy\n"; }//reading reading($argv[1], $argv[2]); ?>