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高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30079