迭代XML元素并将元素推送到数组中

时间:2012-02-21 08:21:13

标签: php xml iterator

我有一个包含两个城市ID的简单XML文档。

<?xml version="1.0" encoding="ISO-8859-1"?>
<config>
    <city>
        <id>London</id>
    </city>
    <city>
        <id>New York</id>
    </city>
</config>

在迭代XML时,我只能获取第一个城市ID,例如伦敦。

<?php
$configFile = 'cityConfig.xml';

function getCityId($configFile) {

    $xml = new SimpleXmlElement(file_get_contents("cityConfig.xml"));

    $cities = array();

    foreach ($xml->city->id as $cityId) {
        $cityId = (string) $cityId;
        array_push($cities, $cityId);
    }

    return $cities;
}

print_r(getCityId($configFile));
?>

<?php

以上的输出:

// Array ( [0] => London )

我正在将$cityId投射到我的网站其他地方使用的字符串中。

我出错的任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:1)

foreach ($xml->city->id as $cityId)

应该是:

foreach ($xml->city as $city) {
    $cityId = $city->id;
    ...
}