duanchen6423 2016-04-20 00:48
浏览 41
已采纳

PHP - 通过其他XML节点迭代

I am working with the following XML response structure:

<CompressedVehicles>
<F>
<RS> 
<R>
    <VS>
        <V />
        <V />
    </VS>
</R>
<R>
    <VS>
        <V />
        <V />
    </VS>
</R>
</RS>
</F>
</CompressedVehicles>

So far, with guidance from a fellow Stack Overflow member, I was able to construct a working JSON output based on the following PHP code:

header('Content-Type: application/json');

$xml  = simplexml_load_file( 'inventory.xml' );
$CompressedVehicles = $xml->CompressedVehicles;

$attributes = array();
foreach( $CompressedVehicles->F->attributes() as $key => $val )
{
    $attributes[$key] = $val->__toString();
}

$data = array();
foreach( $CompressedVehicles->F->RS->R->VS->V as $vehicle )
{
    $line = array();
    foreach( $vehicle->attributes() as $key => $val )
{
    $line[$attributes[$key]] = $val->__toString();
}
$data[] = $line;
}

$json = json_encode($data);
echo $json;

This only iterates through a single <R> node before completion. How can I now append the code to iterate through each <R> node as well?

Thank you in advance.

  • 写回答

1条回答 默认 最新

  • duan_2000 2016-04-20 01:00
    关注

    Right now, you're directly going to $CompressedVehicles->F->RS->R->VS->V, just modify it to loop each <R> node:

    foreach( $CompressedVehicles->F->RS->R as $r )
    {
    

    This iterate to each <R>.

    Then for each <R>, add another nest for the $vehicle:

    foreach($r->VS->V as $vehicle) 
    {
    // rest of your code
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line