使用PHP从XML拆分结果


Split result from XML using PHP

我使用PHP从XML文件中获取一些数据。代码很简单,就像:

// load XML file 
$xml = simplexml_load_file('http://www.something.com/rss/rss.xml') or die ("Unable to load XML!"); 
// access XML data 
echo "Title for 1 " . $xml->channel->item[0]->title . "<br>"; 
echo "Link for 1: " . $xml->channel->item[1]->link . "<br>";
echo "Description for 1: " . $xml->channel->item[1]->description . "<br>"; 

它工作得很好,但在这里我发现了问题,描述包含大量的数据,具体来说,它看起来像:

<description>Duration : 6 min&lt;br&gt;Url : http://www.videosite.com/video5261542/name_of_video&lt;br&gt;&lt;img src='http://img100-542.link_on_image.jpg'&gt;&lt;br&gt;&lt;img src='http://img100-542.link_on_another_image.jpg'&gt;&lt;br&gt;&amp;lt;div id=&amp;quot;xv-embed-5261542&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt; (function() {  var tn = document.createElement('script'); tn.type = 'text/javascript'; tn.async = true;  tn.src = 'http://flashservice.xvideos.com/embedcode/5261542/510/400/embed.js'; var s = document.getElementById('xv-embed-5261542'); s.parentNode.insertBefore(tn, s); })(); &amp;lt;/script&amp;gt;&lt;br&gt; </description>

我只认为我想从这里是DURATION时间和两个图像链接,每个图像链接都是分开的,我正在考虑使用爆炸功能,但不确定如何做到这一点或以什么条件分割

试试;)

<?php
// load XML file
$xml = simplexml_load_file('http://www.something.com/rss/rss.xml') or die ("Unable to load XML!");
$desc = $xml->channel->item[1]->description;
preg_match('~Duration : (?<duration>.+)<br>~isU', $desc, $duration);
preg_match_all('~<img src=''(?<url>[^'']+)''~isU', $desc, $images);
$duration = $duration['duration'];
$images = $images['url'];
// access XML data
echo "Title for 1 " . $xml->channel->item[0]->title . "<br>";
echo "Link for 1: " . $xml->channel->item[1]->link . "<br>";
echo "Duration for 1: " . $duration . "<br>";
echo "Images for 1: " . implode('<br>', $images) . "<br>";

输出
Title for 1 ---TITLE---
Link for 1: http://www.something.com/xyz
Duration for 1: 22 min
Images for 1: http://www.something.com/xyz.6.jpg
http://www.something.com/xyz-5.6.jpg