2012-04-05 76 views
0

我正在使用SimpleXMLElement生成一个xml文件。用命名空间输出xml文件

由于命名空间,我在格式化文件时遇到了一些困难。希望有人能帮助。 (没有问题获取数据...只是不确定何时使用 - > addChild, - > addAttribute和其他)

此文件需要在这个确切的结构,因为另一个应用程序(JW播放器)将读取它:

//xml structure 
<?xml version="1.0"?> 
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:jwplayer="http://developer.longtailvideo.com/trac/" > 
<channel> 
<title>MRSS Playlist Playlist</title> 
... 
<item> 
<title>Cardio routine with handweights</title> 
<media:content url="videos/set2_first_5min.flv" /> 
<media:thumbnail url="thumbs/set2_first.png" /> 
<description>side jumps, arm curls, leg squats, arm lifts</description> 
<jwplayer:duration>300</jwplayer:duration> 
<jwplayer:start>5</jwplayer:start> 
</item> 
... 
</channel> 
</rss> 
//export xml file 
$xml->asXML("devplaylist.xml"); 

任何帮助,将不胜感激。 谢谢, DK

+0

pl。看到我的回应。 – 2012-04-05 14:14:04

回答

0

试试这个:

<?php 
$xml = simplexml_load_string('<?xml version="1.0"?><rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:jwplayer="http://developer.longtailvideo.com/trac/"></rss>'); 
$channel = $xml->addChild('channel'); 

$channel->addChild('title', 'TITLE_HERE'); 
$channel->addChild('link', 'LINK_HERE'); 
$channel->addChild('description', 'DESCRIPTION_HERE'); 
$channel->addChild('language', 'LANGUAGE_HERE'); 
$channel->addChild('copyright', 'COPYRIGHT_HERE'); 
// rest of your nodes 

$i=0; 
while(++$i < 2) { // will run only once, only for demo purpose... 
    $item = $channel->addChild('item'); 

    $item->addChild('title', 'Cardio routine with handweights'); 
    $mediaContent = $item->addChild('content', '', 'http://search.yahoo.com/mrss/'); 
    $mediaContent->addAttribute('url', 'videos/set2_first_5min.flv'); 
    $mediaThumbnail = $item->addChild('thumbnail', '', 'http://search.yahoo.com/mrss/'); 
    $mediaThumbnail->addAttribute('url', 'thumbs/set2_first.png'); 
    $item->addChild('description', 'side jumps, arm curls, leg squats, arm lifts'); 
    $item->addChild('duration', 300, 'http://developer.longtailvideo.com/trac/'); 
    $item->addChild('start', 5, 'http://developer.longtailvideo.com/trac/'); 
} 

//export xml file 
$xml->asXML("devplaylist.xml"); 
?> 

希望它能帮助。

+0

对!感谢您帮助我。它工作完美。 – Derek 2012-04-05 19:38:32