首页 > php教程 > php手册 > 正文

php中SimpleXML生成与解析xml文件

php中文网
发布: 2016-05-25 16:42:16
原创
1499人浏览过

在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);  
        }  
    }
    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"; 
//打印出所有instance的IP 
foreach ( $test->instances->instance as $instance) { 
    echo "IP: {$instance['ip']} n" ; 
}
登录后复制


本文地址:

立即学习PHP免费学习笔记(深入)”;

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

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号