• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP读取XML格式文件的方法总结

php 搞代码 4年前 (2022-01-01) 36次浏览 已收录 0个评论

这篇文章主要介绍了PHP读取XML格式文件的方法,结合实例形式总结分析了php针对xml格式文件的读取、解析、加载、遍历等操作技巧,需要的朋友可以参考下

本文实例总结了PHP读取XML格式文件的方法。分享给大家供大家参考,具体如下:

books.xml文件:

   Jack Herrington<title>PHP Hacks</title>O'Reilly Jack Herrington<title>Podcasting Hacks</title>O'Reilly

1.DOMDocument方法

 load( 'books.xml' ); $books = $doc->getElementsByTagName( "book" ); foreach( $books as $book ) { $authors = $book->getElementsByTagName( "author" ); $author = $authors->item(0)->nodeValue; $publishers = $book->getElementsByTagName( "publisher" ); $publisher = $publishers->item(0)->nodeValue; $titles = $book->getElementsByTagName( "title" ); $title = $titles->item(0)->nodeValue; echo "$title - $author - $publisher\n"; echo "<br>"; } ?> 

2.用 SAX 解析器读取 XML:

  

3.用正则表达式解析 XML:

 <?php $xml = ""; $f = fopen( 'books.xml', 'r' ); while( $data = fread( $f, 4096 ) ) { $xml .= $data; } fclose( $f ); preg_match_all( "/\(.*?)\/s", $xml, $bookblocks ); foreach( $bookblocks[1] as $block ) { preg_match_all( "/\(.*?)\/", $block, $author ); preg_match_all( "/\<title>(.*?)\/",  $block, $title ); preg_match_all( "/\(.*?)\/", $block, $publisher ); echo( $title[1][0]." - ".$author[1][0]." - ".$publisher[1][0]."\n" ); } ?> 

4.解析XML到数组

 <?php $data = "简单的XML数据"; $parser = xml_parser_create(); //创建解析器 xml_parse_into_struct($parser, $data, $values, $index); //解析到数组 xml_parser_free($parser); //释放资源 //显示数组结构 echo "\n索引数组\n"; print_r($index); echo "\n数据数组\n"; print_r($values); ?> 

5.检查XML是否有效

 <?php //创建XML解析器 $xml_parser = xml_parser_create(); //使用大小写折叠来保证能在元素数组中找到这些元素名称 xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true); //读取XML文件 $xmlfile = "bb.xml"; if (!($fp = fopen($xmlfile, "r"))) { die("无法读取XML文件$xmlfile"); } //解析XML文件 $has_error = false;      //标志位 while ($data = fread($fp, 4096)) { //循环地读入XML文档,只到文档的EOF,同时停止解析 if (!xml_parse($xml_parser, $data, feof($fp))<i style="color:transparent">来源gaodai$ma#com搞$代*码网</i>) { $has_error = true; break; } } if($has_error) { echo "该XML文档是错误的!<br />"; //输出错误行,列及其错误信息 $error_line  = xml_get_current_line_number($xml_parser); $error_row  = xml_get_current_column_number($xml_parser); $error_string = xml_error_string(xml_get_error_code($xml_parser)); $message = sprintf("[第%d行,%d列]:%s", $error_line, $error_row, $error_string); echo $message; } else { echo "该XML文档是结构良好的。"; } //关闭XML解析器指针,释放资源 xml_parser_free($xml_parser); ?> 

6.可用于精确的读取XML

test.xml

   1001234562004060515302011010北京010北京001593362650185618常年供应苗木,品种有玉兰、黄叶杨等。联系人:张三,电话:1234567890。1009588

test.php:

 <?php $myData = array(); $file = file_get_contents("test.xml"); if(strpos($file, ' -1) { try { //加载解析xml $xml = simplexml_load_string($file); if($xml) { //echo $this->result; //获取节点值 $CONNECT_ID = $xml->CONNECT_ID; $MO_MESSAGE_ID = $xml->MO_MESSAGE_ID; $RECEIVE_DATE = $xml->RECEIVE_DATE; $RECEIVE_TIME = $xml->RECEIVE_TIME; $GATEWAY_ID = $xml->GATEWAY_ID; $VALID = $xml->VALID; $CITY_CODE = $xml->CITY_CODE; $CITY_NAME = $xml->CITY_NAME; $STATE_CODE = $xml->CITY_CODE; $STATE_NAME = $xml->STATE_NAME; $TP_PID = $xml->TP_PID; $TP_UDHI = $xml->TP_UDHI; $MSISDN = $xml->MSISDN; $MESSAGE_TYPE = $xml->MESSAGE_TYPE; $MESSAGE = $xml->MESSAGE;//短信 $LONG_CODE = $xml->LONG_CODE; $SERVICE_CODE = $xml->SERVICE_CODE; preg_match("/(561)\d{1,2}/", $MESSAGE, $code); switch($code[0]) { case 5618 : $myData[message] = $MESSAGE; break; default : $myData[] = '没有短消息。'; break; } } else { echo "加载xml文件错误。"; } } catch(exception $e){ print_r($e); } } else { echo "没有该XML文件。"; } echo "<pre class="prettyprint linenums">"; print_r($myData); echo "<hr>"; echo $myData[message]; ?> 

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:

在线格式化XML/在线压缩XML
http://tools.gaodaima.com/code/xmlformat

XML在线压缩/格式化工具:
http://tools.gaodaima.com/code/xml_format_compress

XML代码在线格式化美化工具:
http://tools.gaodaima.com/code/xmlcodeformat

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP针对XML文件操作技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

以上就是PHP读取XML格式文件的方法总结的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP读取XML格式文件的方法总结

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址