<?xml version="1.0" encoding="utf-8"?>
<user>
        <person_siteurl>http://www.163.com</person_siteurl>
        <job_keys>PHP</job_keys>
        <job_keys>JAVA</job_keys>
        <job_keys>PYTHON</job_keys>
        <email>[email protected]</email>
</user>以上是XML,怎么将里面的数据提取出来,结果如下:$arr = array(
   'person_siteurl'=>'http://www.163.com',
   'job_keys'=>'php,java,python',
    'email'=>'[email protected]'
)谢谢~~

解决方案 »

  1.   

    simplexml_load_string,即可解析为对象同名的会变成数组形式保存稍微加工一下就满足你的格式了
      

  2.   


    <?php
    $s='<?xml version="1.0" encoding="utf-8"?>
    <user>
            <person_siteurl>http://www.163.com</person_siteurl>
            <job_keys>PHP</job_keys>
            <job_keys>JAVA</job_keys>
            <job_keys>PYTHON</job_keys>
            <email>[email protected]</email>
    </user>';
    $result = xml_to_array($s);
    var_dump($result);
    function xml_to_array($xml) 

      $array = (array)(simplexml_load_string($xml)); 
      foreach ($array as $key=>$item){ 
        $array[$key]  =  struct_to_array((array)$item); 
      } 
      return $array; 

    function struct_to_array($item) { 
      if(!is_string($item)) { 
          $item =  struct_to_array($val);  
      } 
      return $item; 
    }
    http://topic.csdn.net/u/20080616/20/bab806e7-c5df-45d8-b289-863304c849c6.html
      

  3.   

    xml不是字符呢,是一个user.xml 文件呢? 这样好像不行吧。
      

  4.   

    Fatal error: Maximum function nesting level of '100' reached, aborting! in C:\wamp\www\test.php on line 28
    出现错误
      

  5.   

     $xml = simplexml_load_file('aa.xml');  
      foreach($xml->children() as $k=>$v){
           if(!$ar[$k]) $ar[$k]=(string)$v;
           else    $ar[$k].=','.$v;    
           
    }
    print_r($ar);
      

  6.   

    $arr=(array)simplexml_load_file('user.xml');
    $res=array_map(function($param){return is_array($param)?implode(',',$param):$param;},$arr);
    print_r($res);