xml_set_element_handler() 函數規定在XML 文件中元素的起始和終止呼叫的函數。
如果成功,則函數則傳回TRUE。如果失敗,則傳回FALSE。
xml_set_element_handler(parser,start,end)
參數 | 描述 |
---|---|
parser | 必需。規定要使用的XML 解析器。 |
start | 必需。規定在元素開始呼叫的函數。 |
end | 必需。規定在元素結束調用的函數。 |
由"start" 參數規定的函數必須有三個參數:
參數 | 描述 |
---|---|
parser | 必需。規定一個變數,包含呼叫處理器的XML 解析器。 |
name | 必需。規定一個變量,包含XML 檔案中的元素的名稱(作為字串),這個元素觸發該函數。 |
data | 必需。規定一個數組,包含XML 檔案中的元素屬性(作為字串)。 |
由"end" 參數規定的函數必須有兩個參數:
參數 | 描述 |
---|---|
parser | 必需。規定一個變數,包含呼叫處理器的XML 解析器。 |
name | 必需。規定一個變量,包含XML 檔案中的元素的名稱(作為字串),這個元素觸發該函數。 |
註: start 和end 參數可以是一個包含物件參考和方法名的陣列。
<?php$parser=xml_parser_create();function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Note --<br />"; break; case "TO": echo "To: "; break; case "FROM": echo "From: "; break; case "HEADING": echo "Heading: "; break; case "BODY": echo "Message: "; } }function stop($parser,$element_name) { echo "<br />"; }function char($parser,$data) { echo $data; }xml_set_element_handler($parser,"start","stop");xml_set_character_data_handler($parser,"char");$fp=fopen("test.xml","r");while ($data=fread($fp ,4096)) { xml_parse($parser,$data,feof($fp)) 或 die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); }xml_parser_free($parser);?>
上面程式碼的輸出如下所示:
-- Note --To: ToveFrom: JaniHeading: ReminderMessage: Don't forget me this weekend!