SimpleXML - Array似乎缺少某些属性

时间:2016-02-01 17:33:22

标签: php xml simplexml

我使用SimpleXML解析来自Web服务的XML数据。到目前为止,一切都进展顺利,但我现在发现自己很难过。我发现SimpleXML生成的数组似乎缺少某些属性。我希望我犯了一个简单的错误,并且非常感谢你的投入。

示例XML数据:

<XYZ data-livestyle-extension="available">
 <year selected="2016">
  <make selected="Alfa Romeo">
   <model selected="4C">
    <submodel vehiclecd="20180">Base</submodel>
    <submodel vehiclecd="20181">Launch Edition</submodel>
    <submodel vehiclecd="20182">Track Package</submodel>
   </model>
  </make>
 </year>
</XYZ>

我的PHP:

$xmlURL = "http://www.domain.com/submodels.xml";
libxml_use_internal_errors(true);
$dataset = simplexml_load_string($response_xml_data);

foreach($dataset as $data) {
  foreach($data->make->model->submodel as $submodel) {
    var_dump($submodel);
  }
  die();
}

var_dump的结果:

object(SimpleXMLElement)#4 (1) {                                                                                                                                                                                                 
  ["@attributes"]=>                                                                                                                                                                                                              
  array(1) {                                                                                                                                                                                                                     
    ["vehiclecd"]=>                                                                                                                                                                                                              
    string(5) "20180"                                                                                                                                                                                                            
  }                                                                                                                                                                                                                              
}                                                                                                                                                                                                                                
object(SimpleXMLElement)#7 (1) {                                                                                                                                                                                                 
  ["@attributes"]=>                                                                                                                                                                                                              
  array(1) {                                                                                                                                                                                                                     
    ["vehiclecd"]=>                                                                                                                                                                                                              
    string(5) "20181"                                                                                                                                                                                                            
  }                                                                                                                                                                                                                              
}                                                                                                                                                                                                                                
object(SimpleXMLElement)#4 (2) {                                                                                                                                                                                                 
  ["@attributes"]=>                                                                                                                                                                                                              
  array(1) {                                                                                                                                                                                                                     
    ["vehiclecd"]=>                                                                                                                                                                                                              
    string(5) "20182"                                                                                                                                                                                                            
  }                                                                                                                                                                                                                              
  [0]=>                                                                                                                                                                                                                          
  string(13) "Track Package"                                                                                                                                                                                                     
}

我不知道为什么字符串&#34; Track Package&#34;可用于第三个实例,但是#34; Launch Edition&#34;和&#34; Base&#34;字符串被排除在外我基本上试图从子模型节点的每个实例中获取两个值...

  • 节点的值(例如:&#39; Base&#39;)
  • &#34; vehiclecd&#34;
  • 的价值

我真的希望自己解决这个问题,但一直无法解决这个问题。非常感谢任何指导!

0 个答案:

没有答案