php 使用expat方式解析xml文件操作示例
这篇文章主要介绍了php 使用expat方式解析xml文件操作,结合实例形式分析了PHP使用expat方式解析xml文件具体步骤与相关操作技巧,需要的朋友可以参考下。
本文实例讲述了php 使用expat方式解析xml文件操作,分享给大家供大家参考,具体如下:
test.xml:
- <?xml version="1.0" encoding="UTF-8"?>
 - <notes>
 - <note>
 - <to>George</to>
 - <from>John</from>
 - <heading>Reminder</heading>
 - <body>Don't forget the meeting!</body>
 - </note>
 - <note>
 - <to>George2</to>
 - <from>John2</from>
 - <heading>Reminder2</heading>
 - <body>Don't forget the meeting!2</body>
 - </note>
 - <instances>
 - <instance st="192.168.234.121" />
 - <instance st="192.168.234.28" />
 - </instances>
 - </notes>
 
PHP文件:
- <?php
 - // Initialize the XML parser
 - $parser = xml_parser_create();
 - // Function to use at the start of an element
 - 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 to use at the end of an element
 - function stop($parser, $element_name)
 - {
 - echo "<br />";
 - }
 - // Function to use when finding character data
 - function char($parser, $data)
 - {
 - echo $data;
 - }
 - // Specify element handler
 - xml_set_element_handler($parser, "start", "stop");
 - // Specify data handler
 - xml_set_character_data_handler($parser, "char");
 - // Open XML file
 - // $fp = fopen("test.xml", "r");
 - // Read data
 - // while ($data = fread($fp, 10)) {
 - // 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)));
 - // }
 - // fclose($fp);
 - $data = file_get_contents("test.xml");
 - xml_parse($parser, $data) or die(sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)));
 - // Free the XML parser
 - xml_parser_free($parser);
 - ?>
 
运行结果:
- -- Note --
 - To: George
 - From: John
 - Heading: Reminder
 - Message: Don't forget the meeting!
 - -- Note --
 - To: George2
 - From: John2
 - Heading: Reminder2
 - Message: Don't forget the meeting!2