2013-02-18 49 views
1

我使用JW播放器加載XML播放列表。它工作正常,當我手動編寫XML文件,而不是當我使用PHP的解析......Php寫入XML文件(給JW播放器)

我希望它看起來像這樣:

<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:jwplayer="http://developer.longtailvideo.com/trac/"> 
<channel> 
    <item> 
    <title>Albert</title> 
    <media:content url="../movies/hi.mp4" /> 
    <description></description> 
    <jwplayer:duration>10</jwplayer:duration> 
    </item> 
</channel> 
</rss> 

的第一個問題是<rss version="2.0" ... 它的力量標頭爲:<?xml version="1.0"?>

第二個問題是<media:content url="" ... 如何使用php打印出來?

第三個問題是如何添加結束RSS </rss>

我的代碼是:

<?php 
    $channel = array(); 
    $channel [] = array( 
    'title' => 'Albert', 
    'content' => 'filmer/c1.jpg', 
    'duration' => "10" 
); 
    $channel [] = array( 
    'title' => 'Claud', 
    'content' => 'filmer/c2.jpg', 
    'duration' => "10" 
); 

    $doc = new DOMDocument(); 
    $doc->formatOutput = true; 

    $r = $doc->createElement("channel"); 
    $doc->appendChild($r); 

    foreach($channel as $item) 
    { 
    $b = $doc->createElement("item"); 

    $title = $doc->createElement("title"); 
    $title->appendChild( 
    $doc->createTextNode($item['title']) 
); 
    $b->appendChild($title); 

    $content = $doc->createElement("media:content"); 
    $content->appendChild( 
    $doc->createTextNode($item['content']) 
); 
    $b->appendChild($content); 

    $duration = $doc->createElement("jwplayer:duration"); 
    $duration->appendChild( 
    $doc->createTextNode($item['duration']) 
); 
    $b->appendChild($duration); 

    $r->appendChild($b); 
    } 

    echo $doc->saveHTML(); 
    $doc->save("write.xml") 
    ?> 

任何想法? 我是PHP/XML的新手,很抱歉:/

回答

1

此行:<?xml version="1.0"?>被稱爲XML Declaration,它是可選的。因此,只要您使用有效的XML,無論該線是否存在都不應該有任何區別並帶來任何問題。

由於RSS基於XML,因此您無需擔心該線路在那裏。

我希望這可以澄清你的問題的這一部分。

而且爲Q &一個通常與每一個問題的效果最好,這裏有另外兩張: