从simplexml_load_file中检索数据

时间:2010-03-08 05:44:57

标签: php

使用simplexml_load_file()函数,会产生副作用。要理解我的意思,请参阅以下代码:

$result = simplexml_load_file($xml_link);

$arr = array();
foreach ($result->element as $elem) {
    $arr[] = $elem->number[0];
}

print_r($arr);

输出:

Array
(
[0] => SimpleXMLElement Object
    (
        [0] => 330411879136
    )

[1] => SimpleXMLElement Object
    (
        [0] => 370346266228
    )

[2] => SimpleXMLElement Object
    (
        [0] => 370346266223
    )
)

如何将数据存储到数组中,以便输出如下:

 Array
 (
 [0] => 330411879136

 [1] => 370346266228

 [2] => 370346266223
 )

1 个答案:

答案 0 :(得分:1)

您必须将从SimpleXML获得的数据转换为您感兴趣的PHP数据类型。

例如,在这里,你应该使用这样的东西:

$result = simplexml_load_file($xml_link);
$arr = array();
foreach ($result->element as $elem) {
    $arr[] = intval($elem->number[0]);
}

即。在这里,我们“强制”转换为整数。


在整数的情况下,这也可以使用类型转换来完成:

$result = simplexml_load_file($xml_link);
$arr = array();
foreach ($result->element as $elem) {
    $arr[] = (int)$elem->number[0];
}

与许多其他类型相同,顺便说一下 - 请参阅手册中的Type Casting部分。


例如,你可以使用这样的字符串:

$arr[] = (string)$elem->number[0];

或者像花车那样:

$arr[] = (float)$elem->number[0];