php simplexml - 字符串作为对象

发布于 2024-10-01 01:33:34 字数 342 浏览 2 评论 0原文

希望有人能就我遇到的 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
}

希望这是有道理的!谢谢

Hoping somebody can advise on an issue I have with simplexml.

I need to specify the paths for various nodes but I'm not sure if this is possible.

$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
}

Hope this makes sense! Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁的新欢旧爱 2024-10-08 01:33:34

您可以为此使用数组:

$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 无法在字符串中插入数组索引,因此如果需要使用它们,只需使用如上所示的关联数组即可。 :-)

You can use an array for this:

$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;
}

This builds up the hierarchy by reassigning $obj equal to itself -> whatever is next in the array.

PHP cannot interpolate array indices in strings, so if you need to use them, just use an associate array as shown above. :-)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文