PHP simplexml使用方法详解
本文章给来大家讲一下关于PHP下simplexml使用方法,希望通过此文章能提升大家对simplexml操作xml文档的理解,有需要了解的朋友可参考.
PHP XML处理XML代码如下:
<? xml version = "1.0" encoding = "UTF-8" ?> <!-- Edited with XML Spy v2007 (http://www.phpfensi.com) --> < breakfast_menu > < food id = "1" > < name > Belgian Waffles </ name > < price > $5.95 </ price > < description > two of our famous Belgian Waffles with plenty of real maple syrup </ description > < calories > 650 </ calories > </ food > < food id = "2" > < name > Strawberry Belgian Waffles </ name > < price > $7.95 </ price > < description > light Belgian waffles covered with strawberries and whipped cream </ description > < calories > 900 </ calories > </ food > < food id = "3" > < name > Berry-Berry Belgian Waffles </ name > < price > $8.95 </ price > < description > light Belgian waffles covered with an assortment of fresh berries and whipped cream </ description > < calories > 900 </ calories > </ food > </ breakfast_menu >php解决xml代码,代码如下:
<html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" /> <title>使用simpleXML处理XML</title> </head> <body> <table border= "1" cellpadding= "0" cellspacing= "0" width= "700" > </tbody> <tr bgcolor= "green" > <th width= "5%" > </th> <th width= "20%" >name</th> <th width= "10%" >price</th> <th width= "55%" >description</th> <th width= "10%" >calories</th> </tr> <?php // 使用simpleXML处理XML $xml = simplexml_load_file( './simple.xml' ); //var_dump($xml); //echo $xml->getName(); //var_dump($xml->children()); $record = '' ; foreach ( $xml ->children() as $child ) { $record .= '<tr><td>' . $child ->attributes(). '</td>' ; foreach ( $child ->children() as $item ) { //var_dump($child); $record .= '<td>' . $item . '</td>' ; } $record .= '</tr>' ; } //开源代码phpfensi.com echo $record ; ?> </tbody> </table> </body> </html>将XML转换为数组结构,代码如下:
private function change_simple_xml_to_array( $obj ){ $i = 0; //从根节点下的二层子节点开始遍历 foreach ( $obj ->children() as $value ){ //如果发生同级、同标签名的情况,则加一维数组; if (isset( $last_name ) && $value ->getName()== $last_name ){ //出现同名发现第二个,则推入第二维数组; if ( $i ==1) $arr [ $last_name ]= array ( $arr [ $last_name ]); //遍历子节点; array_push ( $arr [ $last_name ], $this ->change_simple_xml_to_array( $value )); } else { $last_name = $value ->getName(); if ( count ( $value ->children())==0) $arr [ $last_name ] = $value . "" ; else $arr [ $last_name ] = $this ->change_simple_xml_to_array( $value ); } $i ++; } return $arr ; } //XML文档—————— <?xml version= "1.0" encoding= "utf-8" ?> < use > <login id= "1" > <user>bddg</user> <pas>abcdefg</pas> <permission><fdsa>5</fdsa></permission> <online_time>2</online_time> </login> <login id= "2" > <user>baidongdaogu</user> <pas>aaa</pas> <permission>1</permission> <online_time>2</online_time> </login> <login id= "3" > <user>baidongdaogu</user> <pas>aaa</pas> <permission>1</permission> <online_time>2</online_time> </login> </ use > //转换后的数组———— Array ( [login] => Array ( [0] => Array ( [user] => bddg [pas] => abcdefg [permission] => Array ( [fdsa] => 5 ) [online_time] => 2 ) [1] => Array ( [user] => baidongdaogu [pas] => aaa [permission] => 1 [online_time] => 2 ) [2] => Array ( [user] => baidongdaogu [pas] => aaa [permission] => 1 [online_time] => 2 ) ) )查看更多关于PHP simplexml使用方法详解 - php高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30071