我使用JW播放器加载XML播放列表。当我手动编写XML文件时,它工作正常,但是当我使用php解析时...
我希望它看起来像这样:
<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打印出来?
第三个问题是如何添加结束rs </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的新手,对不起:/
答案 0 :(得分:1)
这一行:<?xml version="1.0"?>
被称为XML Declaration,它是可选的。因此,只要您使用有效的XML,该行是否存在就不会产生任何影响并造成任何问题。
由于RSS基于XML,因此您无需担心该行存在。
我希望这能澄清你问题的这一部分。
由于Q&amp; A通常最好用一个问题,所以其他两个:
答案 1 :(得分:0)
有必要在xml中的php代码之前放置一个标头,以通知jwplayer正在加载什么。
header("Content-type: text/xml");