php将xml文件转换成数组

以下我们是直接引用的一个url地址作为xml的接收对象,实际情况中你也许自己有自己的xml,只需要先将xml转化成字符串,然后引用类来进行处理就可以了。

以下是xml文件

 

<?xml version="1.0" encoding="utf-8" ?> 
- <docs>
- <persondetail>
- <personname>
- <![CDATA[ "张先生 研发部经理.."
  ]]> 
  </personname>
- <!-- 人才姓名
  --> 
- <personurl>
- <![CDATA[ "http%3A%2F%2Fkg.dqjob88.com%2FmyNew%2Fresume%2FResumePreview.php%3FResumeId%3Djob10011112337008%26gjTag%3D0%26r%3Daca9bac124"
  ]]> 
  </personurl>
- <!-- 人才的链接(需转码)
  --> 
- <personjob>
- <![CDATA[ "研发部经理/技术主管"
  ]]> 
  </personjob>
- <!-- 意向职位
  --> 
- <personsex>
- <![CDATA[ "女"
  ]]> 
  </personsex>
- <!-- 性别
  --> 
- <personzy>
- <![CDATA[ "电气自动化"
  ]]> 
  </personzy>
- <!-- 专业
  --> 
- <personschool>
- <![CDATA[ "重庆科技学院"
  ]]> 
  </personschool>
- <!-- 毕业学校
  --> 
- <personupdate>
- <![CDATA[ "2012-03-23"
  ]]> 
  </personupdate>
- <!-- 更新日期
  --> 
  </persondetail>
- <persondetail>
- <personname>
- <![CDATA[ "赵先生 高中 总工.."
  ]]> 
  </personname>
- <!-- 人才姓名
  --> 
- <personurl>
- <![CDATA[ "http%3A%2F%2Fkg.dqjob88.com%2FmyNew%2Fresume%2FResumePreview.php%3FResumeId%3Djob1001781291708%26gjTag%3D1%26r%3Dac77374c24"
  ]]> 
  </personurl>
- <!-- 人才的链接(需转码)
  --> 
- <personjob>
- <![CDATA[ "总工程师/副总工程师"
  ]]> 
  </personjob>
- <!-- 意向职位
  --> 
- <personsex>
- <![CDATA[ "女"
  ]]> 
  </personsex>
- <!-- 性别
  --> 
- <personzy>
- <![CDATA[ "电气工程"
  ]]> 
  </personzy>
- <!-- 专业
  --> 
- <personschool>
- <![CDATA[ "阜宁中学"
  ]]> 
  </personschool>
- <!-- 毕业学校
  --> 
- <personupdate>
- <![CDATA[ "2010-04-21"
  ]]> 
  </personupdate>
- <!-- 更新日期
  --> 
  </persondetail>
- <persondetail>
- <personname>
- <![CDATA[ "常先生 本科 电气.."
  ]]> 
  </personname>
- <!-- 人才姓名
  --> 
- <personurl>
- <![CDATA[ "http%3A%2F%2Fkg.dqjob88.com%2FmyNew%2Fresume%2FResumePreview.php%3FResumeId%3Djob1001222970408%26gjTag%3D2%26r%3Dac2205df24"
  ]]> 
  </personurl>
- <!-- 人才的链接(需转码)
  --> 
- <personjob>
- <![CDATA[ "电气工程师/技术员"
  ]]> 
  </personjob>
- <!-- 意向职位
  --> 
- <personsex>
- <![CDATA[ "女"
  ]]> 
  </personsex>
- <!-- 性别
  --> 
- <personzy>
- <![CDATA[ "法学"
  ]]> 
  </personzy>
- <!-- 专业
  --> 
- <personschool>
- <![CDATA[ "山东科技大学"
  ]]> 
  </personschool>
- <!-- 毕业学校
  --> 
- <personupdate>
- <![CDATA[ "2009-10-27"
  ]]> 
  </personupdate>
- <!-- 更新日期
  --> 
  </persondetail>
- <persondetail>
- <personname>
- <![CDATA[ "刘先生 大专 工厂.."
  ]]> 
  </personname>
- <!-- 人才姓名
  --> 
- <personurl>
- <![CDATA[ "http%3A%2F%2Fkg.dqjob88.com%2FmyNew%2Fresume%2FResumePreview.php%3FResumeId%3Djob1001345792208%26gjTag%3D0%26r%3Dac34c39924"
  ]]> 
  </personurl>
- <!-- 人才的链接(需转码)
  --> 
- <personjob>
- <![CDATA[ "工厂厂长/副厂长/工厂经理"
  ]]> 
  </personjob>
- <!-- 意向职位
  --> 
- <personsex>
- <![CDATA[ "女"
  ]]> 
  </personsex>
- <!-- 性别
  --> 
- <personzy>
- <![CDATA[ "行政管理"
  ]]> 
  </personzy>
- <!-- 专业
  --> 
- <personschool>
- <![CDATA[ "厦门大学"
  ]]> 
  </personschool>
- <!-- 毕业学校
  --> 
- <personupdate>
- <![CDATA[ "2008-09-29"
  ]]> 
  </personupdate>
- <!-- 更新日期
  --> 
  </persondetail>
  </docs>
class xml2array{
   public $str = '';
   public $type = 0; //0为字符串,1为文件
  
   function readxml(){
    if($this->type==1){
     $this->xmlstr = simplexml_load_file($this->str);//simplexml_load_file()作用是:将一个XML文档装载入一个对象中。
    }else{
     $this->xmlstr = simplexml_load_string($this->str);
    }
   }
   function xarray(){
    $this->readxml();
    $arrstr = array();
    
    $str = serialize($this->xmlstr); //serialize()  产生一个可存储的值的表示
    $str = str_replace('O:16:"SimpleXMLElement"', 'a', $str);
    $arrstr = unserialize($str); //unserialize()  从已存储的表示中创建 PHP 的值
     return $arrstr;
 
   }
  
  }
  $url="http://kg.dqjob88.com/oem/openxmlrc.php";
$xml_str=file_get_contents($url);
$xml_str=str_replace("\"]]>","",$xml_str);  
$xml_str=str_replace("<![CDATA[\"","",$xml_str); 
  //对象引用
  $t=new xml2array();
     $t->str=$xml_str;
  $i=1;
     $m=$t->xarray();
  $a=$m['persondetail'];foreach($a as $key =>$value)
  {
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值