PHP读取XML文件到数组再输出echo "php读取XML文件 <br>";$lists = simplexml_load_file('xml.xml');  //载入xml文件 $lists和xml文件的根节点是一样的  
// $companyName = $lists->company;
// echo $companyName;   //直接输出
echo "<br>";
foreach($lists->info as $users){     //有多个user,取得的是数组,循环输出
 print($users->info);
 print($users->name);
echo "&nbsp;&nbsp;&nbsp;&nbsp;";
print($users->sex);
// print($users->height);
 echo "<br>";
}
XML代码:<?xml version="1.0" encoding="utf-8"?>
<root>
  <info value="MUSIC">
    <name>张三</name>
    <sex>男</sex>
  </info>
  <info value="MUSIC">
    <name>李四</name>
    <sex>男</sex>
  </info>
  <info value="MUSIC">
    <name>刘兰</name>
    <sex>女</sex>
  </info>
</root>请问代码怎么改?

解决方案 »

  1.   

    <?php
    echo "php读取XML文件 <br>";$lists = simplexml_load_file('xml.xml');  //载入xml文件 $lists和xml文件的根节点是一样的  
    // $companyName = $lists->company;
    // echo $companyName;   //直接输出
    echo "<br>";foreach($lists->info as $users){     //有多个user,取得的是数组,循环输出
     print($users['value']);
     print($users->name);
    echo "&nbsp;&nbsp;&nbsp;&nbsp;";
    print($users->sex);
    // print($users->height);
     echo "<br>";
    }?> 
      

  2.   


    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <?php
    echo "php读取XML文件 <br>";$str=<<<EOD
    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <info value="MUSIC">
        <name>张三</name>
        <sex>男</sex>
      </info>
      <info value="MUSIC">
        <name>李四</name>
        <sex>男</sex>
      </info>
      <info value="MUSIC">
        <name>刘兰</name>
        <sex>女</sex>
      </info>
    </root>
    EOD;$lists = simplexml_load_string($str);  //载入xml文件 $lists和xml文件的根节点是一样的  
    // $companyName = $lists->company;
    // echo $companyName;   //直接输出
    echo "<br>";
    $r=array();
    foreach($lists->info as $users){     //有多个user,取得的是数组,循环输出
      $r[]=array(
        "name"=>(string)$users->name,
        "sex"=>(string)$users->sex,
      );
    }
    print_r($r);?> 是这个意思嘛?