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