当前位置: 首页 > 网络学院 > 服务端脚本教程 > PHP > xml_parse() 函数
The xml_parse() function parses an XML document.
xml_parse()函数的作用是:解析一个XML文档。
This function returns TRUE on success, or FALSE on failure.
如果这个函数执行成功,将返回True;如果执行失败,将返回False。
xml_parse(parser,xml,end) |
Parameter 参数 | Description 描述 |
---|---|
parser | Required. Specifies XML parser to use 必要参数。指定需要使用的XML解析器 |
xml | Required. Specifies XML data to parse 必要参数。指定需要解析的XML数据 |
end | Optional. If this parameter is TRUE, the data in the "xml" parameter is the last piece of data sent in this parse. 可选参数。如果这个参数是True,那么“xml”参数中最后面一部分的数据发送到解析器中 Note: Entity errors are reported at the end of the parse. And will only show if the "end" parameter is TRUE |
Tip: To create an XML parser, use the xml_parser_create() function.
提示:你可以使用xml_parser_create()函数创建一个XML解析器。
XML File
XML文件
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> |
PHP Code
PHP代码
<?php $parser=xml_parser_create(); function char($parser,$data) { echo $data; } xml_set_character_data_handler($parser,"char"); $fp=fopen("test.xml","r"); while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or 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); ?> |
The output of the code above will be:
上述代码将输出下面的结果:
Tove Jani Reminder Don't forget me this weekend! |
Using the same XML file but displaying the XML data in another way:
你可以使用相同的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("test.xml","r"); while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or 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); ?> |
The output of the code above will be:
上述代码将输出下面的结果:
-- Note -- To: Tove From: Jani Heading: Reminder Message: Don't forget me this weekend! |