PHP - как вывести список дочерних мыльных ответов

1

Я получил ответ в следующем XML-формате, как показано ниже: Как я могу получить значение list-> item-> в одной строке или контейнере:

<list>
   <item>
    <Key>3</Key>
    <Value>3960</Value>
</item>
<item>
    <Key>5</Key>
    <Value>3967</Value>
</item>
<item>
    <Key>6</Key>
    <Value>3968</Value>
</item>
</list>

Как я могу отобразить значение, подобное приведенному ниже

<table>
<tr>
<td>3960, 3967, 3968</td>
<td>3963, 3961, 3960</td>
</tr>
</table>

и на данный момент я пытаюсь использовать children() в foreach, но он возвращает ошибку: вызовите функцию-член children() на null, а ниже - мой php-код

foreach($items as $item){

echo '<td>';
  $child_item = '';
  foreach($item->list->children()->children() as $child)
  {
    $child_item .= $child .' ,';
  }
  echo rtrim($child_item,' ,');
  echo  '</td>';

  }

Спасибо экспертам!

  • 0
    Я не уверен, что тип объекта $ items (и, следовательно, $ item). Что вы используете для чтения данных XML в PHP?
Теги:

1 ответ

0
Лучший ответ

Это то, что вам нужно для достижения этого:

<?php
$xmlstr = <<<XML
<root>
    <list>
        <item>
            <Key>3</Key>
            <Value>3960</Value>
        </item>
        <item>
            <Key>5</Key>
            <Value>3967</Value>
        </item>
        <item>
            <Key>6</Key>
            <Value>3968</Value>
        </item>
    </list>
    <list>
        <item>
            <Key>3</Key>
            <Value>3963</Value>
        </item>
        <item>
            <Key>5</Key>
            <Value>3961</Value>
        </item>
        <item>
            <Key>6</Key>
            <Value>3960</Value>
        </item>
    </list>
</root>
XML;

$items = new SimpleXMLElement($xmlstr);

echo "<table>\r\n";
echo "<tr>\r\n";
foreach($items as $list){
    echo "<td>";
    $itemsArr = array();
    foreach($list as $item){
        $itemsArr[] = $item->Value[0];
    }
    echo implode(", ", $itemsArr);
    echo "</td>\r\n";
}
echo "</tr>\r\n";
echo "</table>";
?>
  • 0
    Большое спасибо, что решил мою проблему

Ещё вопросы

Сообщество Overcoder
Наверх
Меню