我使用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;字符串被排除在外我基本上试图从子模型节点的每个实例中获取两个值...
我真的希望自己解决这个问题,但一直无法解决这个问题。非常感谢任何指导!