加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php中SimpleXML生成和解析xml文件

发布时间:2022-02-10 00:47:09 所属栏目:PHP教程 来源:互联网
导读:在php中对xml文档操作我们有很多类可以使用,php SimpleXML就是一个很不错的xml解析器,下面我来给大家举两个应用实例. 例,生成xml文档,代码如下: class SimpleXMLExtended extends SimpleXMLElement { public function addCData($cdata_text) { $node = dom
  在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);  
          }  
      } //开源代码Cuoxin.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";
  //开源代码Cuoxin.com
  //打印出所有instance的IP
  foreach ( $test->instances->instance as $instance) {
   echo "IP: {$instance['ip']} n" ;
  }
 

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读