当前位置:  首页  >  PHP教程  >  PHP 应用  >  常见问题

php中SimpleXML生成与解析xml文件

在php中对xml文档操作我们有很多类可以使用,phpSimpleXML就是一个很不错的xml解析器,下面我来给大家举两个应用实例.例,生成xml文档,代码如下:classSimp...
在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('');  
    }  
    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);  
        }  
    }
    return $xml->asXML();  
}

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

 
  
  HTTP 
  80 
  /index.html 
  5000 
  3000 
  2 
  3 
  
  
   
   
  
 
XML; 
 
$test = new SimpleXMLElement($content); 
 
//获得ping_protocol的值 
$ping_protocol = $test->global_setting->ping_protocol; 
echo "ping_protocol : $ping_protocol n"; 
//打印出所有instance的IP 
foreach ( $test->instances->instance as $instance) { 
    echo "IP: {$instance['ip']} n" ; 
}


本文地址:

转载随意,但请附上文章地址:-)

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有