迭代PHP中的SimpleXMLElement对象

时间:2016-04-27 11:51:24

标签: php simplexml

我无法遍历此xml文件。我正在使用simplexml_load_file()。有没有人有办法解决吗?谢谢你的时间。我是新手!

SimpleXMLElement Object
(
[ReferenceMember] => SimpleXMLElement Object
    (
        [Agency] => SimpleXMLElement Object
            (
                [ID] => xx
                [ActivityID] => xxxxx
                [ActivityReferenceID] => xxxxx
            )

    )

[Member] => SimpleXMLElement Object
    (
        [Agency] => SimpleXMLElement Object
            (
                [ID] => xx
                [ActivityID] => xxxx
                [ActivityReferenceID] => xxxx
            )

    )

[SubmissionID] => xxxx
[Company] => xxxxx

[Emails] => SimpleXMLElement Object
    (
        [Email1] => xxxx@xxx.com
    )

[UploadedDate] => 24/11/14
)

这是我试过的

$data = simplexml_load_file($file);

foreach ($data as $item) {

        foreach ($item->item as $entry) {
            $this->set_date($entry->UploadedDate);

        }

}

$array = array(
            "DATE" => $this->get_date()

        );

var_dump($array);

这就是我得到的

array(1) {
  ["DATE"]=>
  NULL
}

当我尝试访问对象值

var_dump($date->UploadedDate);

object(SimpleXMLElement)#9 (1) {
  [0]=>
  string(8) "24/11/14"
}

1 个答案:

答案 0 :(得分:0)

根据您提供给我们的信息,您根本不需要循环,因为您只需要一个答案,并且您确切知道在哪里找到它:

$data = simplexml_load_file($file);
$this->set_date( (string)$data->UploadedDate );

请注意,我在这里使用了(string);这将从找到的值中删除SimpleXML魔术,这可能是您以后想要的。 echo为您执行此操作,因此echo $data->UploadedDate;会显示您的期望。