微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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视频教程

<?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);
?>

相关文章教程推荐:php教程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐