无法使用SimpleXML

时间:2017-08-18 21:25:05

标签: php arrays xml wordpress rss

我正在使用Wordpress XML默认导出并尝试将后RSS与图像RSS合并。我首先获取所有图像和相关的帖子ID,然后将它们放入一个数组中。然后我浏览每篇博文,并使用帖子ID从数组中获取图像。

首先,我抓取每个XML项并将它们添加到数组中。我使用后来获取的帖子ID作为数组键来访问。

foreach($xml_image->channel->item as $featured) {
  // add image attachment url to $image array with post_id as key
  $url = $featured->guid->__toString();
  $post_id = intval($featured->children($ns['wp'])->post_id->__toString());
  $image[$post_id] = $url;
  //var_dump($url);
  //var_dump($post_id);
}

输出为

Array ( [62] => http://image.url.com )

冷却。然后,当我尝试使用变量访问它,甚至硬编码密钥/数字时,它不起作用

$image_url = $image[62];

Outputs: Notice: Undefined offset: 62 in /home/filename.php on line whatever

我已尝试将此数组转换为对象并以这种方式访问​​密钥($imageobj = (object) $image); $imageobj->{62};),但这也无效。我尝试过使用(int)intval()但他们没有用过。甚至是trim()和(string)。我终于确定了__toString(),尽管它也不起作用。

我不确定SimpleXmlElement函数对要生成62 != 62的整数的作用是什么,或者我如何开始以必要的格式复制62来访问它。

我甚至尝试过array_search和array_filter,在数组中使用post id和element(id=>$post_id)而不是密钥本身 - nada。

非常感谢任何指导。此代码基于https://github.com/greywillfade/wpxml-to-kirby,只需在顶部添加上述foreach循环函数(使用单独的文件加载和所有爵士乐)。

0 个答案:

没有答案