0

私はこのようなxml文字列を持っています、

 <xml>
   <type>name</type>
     <name>
        <namedata>abc</namedata>
        <namedata>efg</namedata>
        <namedata>ijk</namedata>
     </name>
 <xml>

要件: xmlをphpに解析し、次のように表示されるようにテーブルに表示する必要があります

   type   namedata   namedata   namedata
   name      abc        efg        ijk

foreachを使用してこれを実行しようとしましたが、namedataの最初の値しか取得できませんでした。これが私がこれまでにしたことです:

  $xml = simplexml_load_string($response);
  echo '<table>';
  echo '<tr><td>type'</td></tr>'.$xml->type.'</td><tr>';
  foreach($xml->name as $row){
     echo'<td>'.$row->namedata.'</td>';
    }
   echo'</tr></table>';
4

2 に答える 2

0

複数のnamdataノードがあるため、次のように配列としてロードできます。

foreach($xml->name->namedata as $row){
    echo'<td>'.$row.'</td>';
}

この「要件」は。私が見つけた最も簡単な方法は次のようなものでした:

$xml = simplexml_load_string($response);
echo '<table border="1">';
echo '<tr><td>type</td>';
for($x=0;$x<count($xml->name->namedata);$x++){
    echo '<td>namedata</td>';
}
echo '</tr><tr><td>'.$xml->type.'</td>';
foreach($xml->name->namedata as $row){
    echo'<td>'.$row.'</td>';
}
echo'</tr></table>';
于 2012-11-21T01:08:56.913 に答える
0

これを使用してみてください:

$xml = simplexml_load_file($response);
echo '<table>';
echo '<tr><td>type</td></tr>'.$xml->type.'</td></tr>';
  foreach($xml->name->namedata as $row){
     echo '<td>'.$row.'</td>';
  }
  echo '</tr></table>';
于 2012-11-21T01:17:50.303 に答える