首页 > 解决方案 > 遍历 simplexml 对象并附加它们

问题描述

如果这已得到答复,我深表歉意。我一直在寻找解决方案,但找不到任何东西。但是我试图遍历一个我从 API 调用中得到的 simplexml。API 不是最好的,所以当日期超过午夜时,它会完全取消这些订单。因此,为了解决这个问题,我还必须获得第二天的订单,然后对订单进行 foreach,然后在日期执行 if 以获得目标日期。在每个循环中,我希望它获取 simplexml 对象并将其放入变量中并附加每个新对象,这样最后我就有了一个只有正确日期的新对象。

我尝试删除特定节点,但这似乎比在每次迭代结束时合并它们要复杂得多。

if (strtotime($thisFri) >= strtotime($today)) {
    $params = array(
        "shiftStart" => $thisFri . " 00:00:00",
        "shiftEnd" => $thisSat . "12:00:00",
        "status" => "filled"
    );
    $clearConnect->setParameters($params);
    $clearConnect->setResultType('xml');
    $shiftResult = $clearConnect->sendRequest('getOrders'); //gets orders
    $friShifts = simplexml_load_string($shiftResult); //puts the results in to xml
    foreach ($friShifts->order as $shift) { //iterates through each order
        $startLong = new DateTime($shift->shiftStartTime); //figuring out dates
        $start = $startLong->format('Y-m-d');
        $endLong = new DateTime($shift->shiftEndTime);
        $end = $endLong->format('Y-m-d');
        if ($start == $thisFri) { //if to run through all orders with proper start date

这就是我所在的地方。$friShifts 是一个 simplexml,它包含一堆看起来像这样的订单。在此之后发生了更多事情,但这基本上就是我正在寻找的。我希望它将正确日期的每次迭代放入一个新的 simplexml 中,然后通过我的其他函数运行。

SimpleXMLElement Object
(
    [orderId] => 3988445
    [status] => filled
    [shiftStartTime] => 2019-01-11T07:00:00
    [shiftEndTime] => 2019-01-11T15:30:00
    [tempId] => 57921
    [firstName] => SimpleXMLElement Object
        (
        )

    [lastName] => SimpleXMLElement Object
        (
        )

    [clientId] => 1543
    [clientName] => SimpleXMLElement Object
        (
        )

    [regionName] => SimpleXMLElement Object
        (
        )

    [orderSpecialty] => School
    [orderCertification] => SLP
    [floor] => SimpleXMLElement Object
        (
        )

    [shiftNumber] => 1
    [note] => SimpleXMLElement Object
        (
        )

    [payrollNumber] => SimpleXMLElement Object
        (
        )

    [lessLunchMin] => SimpleXMLElement Object
        (
        )

    [dateTimeCreated] => 2018-08-06T17:03:34
    [takenBy] => 480
    [bookedByUserId] => 480
    [orderTypeId] => 1
    [orderType] => SimpleXMLElement Object
        (
        )

    [city] => Media
    [state] => xx
    [zipCode] => xxxxx
    [orderSourceID] => SimpleXMLElement Object
        (
        )

    [orderSourceName] => SimpleXMLElement Object
        (
        )

    [lt_orderID] => 0
    [dateTimeModified] => 2018-08-06T17:03:34
    [subjectID] => SimpleXMLElement Object
        (
        )

    [subject] => SimpleXMLElement Object
        (
        )

)```


标签: phpsimplexml

解决方案


推荐阅读