用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1481|回复: 9
收起左侧

[版本 3.x] 如何读取xml文件?

[复制链接]
发表于 2016-8-19 09:59:51 | 显示全部楼层 |阅读模式
项目中需要读取xml文件标签的内容。测试代码阶段已经写好的函数只能读取项目内的xml文件。问题来了,部署到linux系统后,如何读取框架外的xml文件?希望提供一点思路或解决方案。谢谢各位。
发表于 2016-8-19 10:10:43 | 显示全部楼层
打开文件-》读取xml文件到变量里-》使用函数解析
 楼主| 发表于 2016-8-19 10:27:15 | 显示全部楼层
我在给出点内容,方便大家理解。
var $path ="xml/proxy_conf/port.xml";//这是框架内的xml文件路径

function get_allport()
        {
                $arr = $this->misc->xml2arr($this->path);
                return $arr;               
        }//读取数据的函数

付上xml2arr函数的代码:
function xml2arr($file)                              
        {     
          $xml=join("",file($file));                                                      
          $array = (array)(simplexml_load_string($xml));
          $para_arr = array();
          foreach ($array as $key=>$item){
                  if( is_object($item) )
                  {
                          $para_arr[0] = $item;
                  }                 
                  else
                  {
                          $para_arr = $item;
                  }
            $array[$key]  =  $this->struct_to_array((array)$para_arr);      
          }                                                      
          return $array;                                         
        }  
 楼主| 发表于 2016-8-19 10:28:15 | 显示全部楼层
liugoe 发表于 2016-8-19 10:10
打开文件-》读取xml文件到变量里-》使用函数解析

回答得太简单了,我没能明白。
后面我在给出了一些信息,帮我看看吧
 楼主| 发表于 2016-8-19 10:32:35 | 显示全部楼层
找到点思路了,路径辅助函数。
发表于 2016-8-19 10:34:12 | 显示全部楼层
比如框架目录叫做a,同级有一个目录叫b,下面有一个abc.xml
var $path ="../b/abc.xml";
 楼主| 发表于 2016-8-19 11:11:29 | 显示全部楼层
liugoe 发表于 2016-8-19 10:34
比如框架目录叫做a,同级有一个目录叫b,下面有一个abc.xml
var $path ="../b/abc.xml"; ...

不是同级目录,框架目录在var/www/html/proxy
需要读的目录再root/gap/abc.xml
发表于 2016-8-19 11:24:30 | 显示全部楼层
../../../root/gap/abc.xml
发表于 2016-8-19 14:14:33 | 显示全部楼层
目录可以用绝对路径。
相对路径的话,计算一下路径关系就行了。

本版积分规则