0

PHP でインポートしたい SimpleXMLElement オブジェクトがあります。ただし、XML ファイルの最初の行だけをループします。また、すべての値を含む行全体を表示するのではなく、 $item->columm1 を使用して特定の列を表示したいと考えています。

$url = 'file.xml';
$sxml = simplexml_load_file($url);

foreach($sxml->Departure->attributes() as $item)
{
    echo $item;
}

編集: これが出力です。元の値を text1、text2 で編集したことに注意してください。

SimpleXMLElement Object ( 
[Departure] => Array ( [0] => SimpleXMLElement Object ( [@attributes] => Array ( [name] => text1 [type] => text2 [stop] => text3 [time] => text4 [date] => text4 [direction] => text5 )

EDIT2:出力 - >

object(SimpleXMLElement)#4 (2) { ["@attributes"]=> array(6) { ["name"]=> string(6)     "text1" ["type"]=> string(3) "text2" ["stop"]=> string(12) "text3" ["time"]=> string(5) "text4" ["date"]=> string(8) "text5" ["direction"]=> string(10) "text6" } ["JourneyDetailRef"]=> object(SimpleXMLElement)#5 (1) { ["@attributes"]=> array(1) { ["ref"]=> string(125) "text7" } } } 

EDIT3:出力 - >

  object(SimpleXMLElement)#7 (1) { [0]=> string(6) "text1" } object(SimpleXMLElement)#8 (1) { [0]=> string(3) "text2" } object(SimpleXMLElement)#7 (1) { [0]=> string(12) "text3" } object(SimpleXMLElement)#8 (1) { [0]=> string(5) "text4" } object(SimpleXMLElement)#7 (1) { [0]=> string(8) "text5" } object(SimpleXMLElement)#8 (1) { [0]=> string(10) "text6" } 
4

1 に答える 1

1

$itemがオブジェクトになりました。アイテムをループする場合は、アイテムのどの部分を画面にエコーアウトするかを必ず指定してください。

例えば:

$url = 'file.xml';
$sxml = simplexml_load_file($url);

//foreach loop
foreach($sxml->Departure as $item){
    //vardump
    var_dump($item);

    //construct next piece of code
    foreach($item->attributes() as $key => $piece){
         echo $key.' = '.$piece;
    }
}
于 2012-06-22T15:01:59.230 に答える