Как правильно типизировать переменные PHP с помощью SimpleXMLElement? - PullRequest
2 голосов
/ 14 января 2012

Я извлекаю данные из XML-канала и манипулирую ими, используя замечательный SimpleXMLElement.Однако, когда я извлекаю узел, который является строго числом, я не могу отобразить значения этого узла.

После исследования в комментарии http://www.php.net/manual/en/class.simplexmlelement.php#100162 упоминается, что PHP иногда неправильно вводит эти типы в узлы.Однако, когда я типизирую переменную как строку, она все равно не появится.Код ниже:

$wAresult = $wunderAXmlObject->xpath("//moon_phase");

$current_sunrise = (string) $wAresult->sunrise[0]->hour[0]
    . ':' . (string) $wAresult->sunrise[0]->minute[0];

Кто-нибудь может объяснить, как правильно настроить тип, чтобы он работал правильно?Спасибо!

Редактировать: Я сделал var_dump (), чтобы помочь диагностировать проблему.Странно, но эти числа выглядят как строки.На данный момент я не уверен, правильно ли я обращаюсь к элементам, хотя я буду продолжать обновлять этот вопрос.

array(1) {
    [0]=> object(SimpleXMLElement)#336 (5) {
        ["percentIlluminated"]=> string(2) "74"
        ["ageOfMoon"]=> string(2) "20"
        ["current_time"]=> object(SimpleXMLElement)#331 (2) {
            ["hour"]=> string(2) "20"
            ["minute"]=> string(2) "34"
        }
        ["sunset"]=> object(SimpleXMLElement)#337 (2) {
            ["hour"]=> string(2) "16"
            ["minute"]=> string(2) "39"
        }
        ["sunrise"]=> object(SimpleXMLElement)#338 (2) {
            ["hour"]=> string(1) "8"
            ["minute"]=> string(2) "03"
        }
    }
}

1 Ответ

1 голос
/ 14 января 2012

Скорее всего, это должно быть $wAresult[0]->sunrise->hour

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...