当前位置:首页 > PHP教程 > php应用 > 列表

php 使用expat方式解析xml文件操作示例

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-24 14:15:16 浏览: 评论:0 

这篇文章主要介绍了php 使用expat方式解析xml文件操作,结合实例形式分析了PHP使用expat方式解析xml文件具体步骤与相关操作技巧,需要的朋友可以参考下。

本文实例讲述了php 使用expat方式解析xml文件操作,分享给大家供大家参考,具体如下:

test.xml:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <notes> 
  3.  <note> 
  4.  <to>George</to> 
  5.  <from>John</from> 
  6.  <heading>Reminder</heading> 
  7.  <body>Don't forget the meeting!</body> 
  8.  </note> 
  9.  <note> 
  10.  <to>George2</to> 
  11.  <from>John2</from> 
  12.  <heading>Reminder2</heading> 
  13.  <body>Don't forget the meeting!2</body> 
  14.  </note> 
  15.  <instances> 
  16.  <instance st="192.168.234.121" /> 
  17.  <instance st="192.168.234.28" /> 
  18.  </instances> 
  19. </notes> 

PHP文件:

  1. <?php 
  2. // Initialize the XML parser 
  3. $parser = xml_parser_create(); 
  4. // Function to use at the start of an element 
  5. function start($parser$element_name$element_attrs
  6.   switch ($element_name) { 
  7.     case "NOTE"
  8.       echo "-- Note --<br />"
  9.       break
  10.     case "TO"
  11.       echo "To: "
  12.       break
  13.     case "FROM"
  14.       echo "From: "
  15.       break
  16.     case "HEADING"
  17.       echo "Heading: "
  18.       break
  19.     case "BODY"
  20.       echo "Message: "
  21.   } 
  22. // Function to use at the end of an element 
  23. function stop($parser$element_name
  24.   echo "<br />"
  25. // Function to use when finding character data 
  26. function char($parser$data
  27.   echo $data
  28. // Specify element handler 
  29. xml_set_element_handler($parser"start""stop"); 
  30. // Specify data handler 
  31. xml_set_character_data_handler($parser"char"); 
  32. // Open XML file 
  33. // $fp = fopen("test.xml", "r"); 
  34. // Read data 
  35. // while ($data = fread($fp, 10)) { 
  36. // 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))); 
  37. // } 
  38. // fclose($fp); 
  39. $data = file_get_contents("test.xml"); 
  40. xml_parse($parser$dataor die(sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); 
  41. // Free the XML parser 
  42. xml_parser_free($parser); 
  43. ?> 

运行结果:

  1. -- Note -- 
  2. To: George 
  3. From: John 
  4. Heading: Reminder 
  5. Message: Don't forget the meeting! 
  6.  
  7. -- Note -- 
  8. To: George2 
  9. From: John2 
  10. Heading: Reminder2 
  11. Message: Don't forget the meeting!2

Tags: expat xml

分享到: