<?php// 處理開始元素函數function startElementHandler($parser, $element, $attributes) {echo "元素開始:".$element."<br>";if($attributes) {echo "屬性:";foreach ( $attributes as $key => $value ) { echo $key."=".$value." ";}echo "<br>";}}// 處理結束元素函數function endElementHandler($parser, $element) {echo "元素結束:".$element."<br><br>";}// 處理字串資料函數function characterDataHandler($parser, $data) {if(trim($data)) {echo "字串資料:".htmlspecialchars($data)."<br>";}}// 處理解析錯誤函數function parserError($parser) {$code = xml_get_error_code($parser);$error = xml_error_string($code);$errorColumn = xml_get_current_column_number($parser);$errorLine = xml_get_current_line_number($parser);return "錯誤碼:".$code." 錯誤:".$error."在第".$errorLine."行第".$errorColumn."列";}// 建立解析器$parser = xml_parser_create();// 註冊元素處理函數xml_set_element_handler($parser, "startElementHandler", "endElementHandler");xml_set_character_data_handler($parser, "characterDataHandler");// 擷取檔案內容$xml = file_get_contents("parser.xml");// 開始解析parser.xml文檔,解析錯誤就調用錯誤處理函數xml_parse($parser, $xml) or die(parserError());// 刪除解析器並釋放記憶體xml_parser_free($parser);?>