xml_parse
開始解析XML文檔
xml_parse()
函數用於解析XML 文檔。
提示:要創建XML 解析器,請使用xml_parser_create()
函數。
創建一個XML 解析器並解析XML 文檔( note.xml ):
<?php // 創建XML 解析器 $parser = xml_parser_create ( ) ; function char ( $parser , $data ) { echo $data ; } xml_set_character_data_handler ( $parser , "char" ) ; $fp = fopen ( "note.xml" , "r" ) ; while ( $data = fread ( $fp , 4096 ) ) { // 解析XML 數據 xml_parse ( $parser , $data , feof ( $fp ) ) or die ( sprintf ( "XML 錯誤:%s 在第%d 行" , xml_error_string ( xml_get_error_code ( $parser ) ) , xml_get_current_line_number ( $parser ) ) ) ; } xml_parser_free ( $parser ) ; fclose ( $fp ) ; ?>
運行實例
使用相同的XML 文件,但以另一種方式顯示XML 數據:
<?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 ( "note.xml" , "r" ) ; while ( $data = fread ( $fp , 4096 ) ) { xml_parse ( $parser , $data , feof ( $fp ) ) or die ( sprintf ( "XML 錯誤:%s 在第%d 行" , xml_error_string ( xml_get_error_code ( $parser ) ) , xml_get_current_line_number ( $parser ) ) ) ; } xml_parser_free ( $parser ) ; fclose ( $fp ) ; ?>
運行實例
xml_parse ( parser , data , end )
參數 | 描述 |
---|---|
parser | 必需。指定要使用的XML 解析器 |
data | 必需。指定要解析的數據。 |
end |
可選。如果設置為TRUE,則data 參數中的數據是本次解析中發送的最後一段數據。 注意:實體錯誤將在解析結束時報告- 並且僅在end 參數為TRUE 時顯示。 |