php simplexml - 字符串作为对象

时间:2010-11-04 20:07:20

标签: php simplexml

希望有人可以就simplexml的问题提出建议。

我需要指定各种节点的路径,但我不确定这是否可行。

$xml = new SimpleXMLElement($xmlstr);
$image1 = 'images->image[0]->image';

foreach ($xml->record as $record) {
  echo $record->$image1; // i need this be be recognised as $record->images->image[0]->image
}

希望这是有道理的!感谢

1 个答案:

答案 0 :(得分:3)

您可以使用数组:

$xml = new SimpleXMLElement($xmlstr);
$levels = array('images', array('key' => 'image', 'index' => 0), 'image');

foreach ($xml->record as $record) {
   $obj = $record;
   foreach($levels as $level) {
      if(is_array($level)) 
         $obj = $obj->{$level['key']}[$level['index']];
      else 
         $obj = $obj->$level; 
   }
   echo $obj;
}

通过重新分配$obj等于它自己->数组中的下一个内容来构建层次结构。

PHP无法在字符串中插入数组索引,因此如果您需要使用它们,只需使用一个关联数组,如上所示。 : - )