好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php中SimpleXML生成与解析xml文件 - php高级应用

php中SimpleXML生成与解析xml文件

在php中对xml文档操作我们有很多类可以使用,php SimpleXML就是一个很不错的xml解析器,下面我来给大家举两个应用实例.

例,生成xml文档,代码如下:

class  SimpleXMLExtended  extends  SimpleXMLElement {      public   function  addCData( $cdata_text ) {        $node  = dom_import_simplexml( $this );        $no    =  $node ->ownerDocument;        $node ->appendChild( $no ->createCDATASection( $cdata_text ));       }     }   function  array2xml( $array ,  $xml  = false){        if ( $xml  === false){            $xml  =  new  SimpleXMLExtended( '<root/>' );       }        foreach ( $array   as   $key  =>  $value ){            if ( is_array ( $value )){               array2xml( $value ,  $xml ->addChild( $key ));           } else {                //如果包含汉字,转编码                 if  (preg_match( "/([x81-xfe][x40-xfe])/" ,  $value ,  $match )) {                    $value  = iconv( 'gbk' ,  'utf-8' ,  $value );               }                $xml -> $key  = NULL;  // VERY IMPORTANT! We need a node where to append                 $xml -> $key ->addCData( $value );                //$xml->$key->addAttribute('lang', 'en');                // $xml->addChild($key, $value);            }       }  //开源代码phpfensi.com        return   $xml ->asXML();   } 

例,SimpleXMLElement解析xml,代码如下:

<?php  $content  = <<<XML  <?xml version= "1.0"  encoding= "UTF-8" ?>  <test>   <global_setting>    <ping_protocol>HTTP</ping_protocol>    <ping_port>80</ping_port>    <ping_path>/index.html</ping_path>    <response_timeout>5000</response_timeout>    <health_check_interval>3000</health_check_interval>    <unhealthy_threshold>2</unhealthy_threshold>    <healthy_threshold>3</healthy_threshold>   </global_setting>   <instances>    <instance ip= "192.168.234.121" />    <instance ip= "192.168.234.28" />   </instances>  </test>  XML;    $test  =  new  SimpleXMLElement( $content );    //获得ping_protocol的值   $ping_protocol  =  $test ->global_setting->ping_protocol;  echo   "ping_protocol : $ping_protocol n" ;  //开源代码phpfensi.com   //打印出所有instance的IP   foreach  (  $test ->instances->instance  as   $instance ) {    echo   "IP: {$instance['ip']} n"  ;  } 

查看更多关于php中SimpleXML生成与解析xml文件 - php高级应用的详细内容...

  阅读:47次