php解析XML文件的简单例子

jopen 11年前

对于XML文件进行解析,首先要看下XML文件中的格式,那些是你需要的,结构清晰后,再来解析,

例如:

<?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">    <DbVisualizer-Export>      <ROWSET>          <ROW>              <GEO_ID>1101</GEO_ID>              <OF_GEO>11</OF_GEO>              <GEO_TYPE>03</GEO_TYPE>              <GEO_NAME>aa</GEO_NAME>              <GEO_CODE>(null)</GEO_CODE>              <ABBREV>(null)</ABBREV>              <COMMENTS>(null)</COMMENTS>          </ROW>          <ROW>              <GEO_ID>12</GEO_ID>              <OF_GEO>null</OF_GEO>              <GEO_TYPE>03</GEO_TYPE>              <GEO_NAME>bb</GEO_NAME>              <GEO_CODE>(null)</GEO_CODE>              <ABBREV>(null)</ABBREV>              <COMMENTS>(null)</COMMENTS>          </ROW>      </ROWSET>  </DbVisualizer-Export>
结构很清晰了

再来我们在php文件中解析

function xml(){   $xml = simplexml_load_file($_SERVER ['DOCUMENT_ROOT']."/data/CityID.xml");//调用该文件   $array=array();//定义数组   foreach ($xml as $key => $value) { //遍历数组    foreach($value as $key=>$val){     //获取XML文件中的值     $keys=$val->GEO_ID;     $values=$val->GEO_NAME;     $area = $val->OF_GEO;     //组合成新的数组     $array[]=$keys.'_'.$values;     if($area=='(null)'){      $array[]='0_'.$keys.'_'.$values;     }else{      $array[]='1_'.$keys.'_'.$values;     }         }   }   return ($array);  }