【问题标题】:Php write XML file (to JW player)php写入XML文件(到JW播放器)
【发布时间】:2013-02-03 02:05:23
【问题描述】:

我使用 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>

第一个问题是&lt;rss version="2.0" ... 它强制标题为:&lt;?xml version="1.0"?&gt;

第二个问题是&lt;media:content url="" ... 如何用 php 打印出来?

第三个问题是如何添加结尾rss&lt;/rss&gt;

我的代码是:

<?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 的新手,对不起:/

【问题讨论】:

    标签: php xml xml-parsing jwplayer


    【解决方案1】:

    需要在 xml 中的 php 代码之前放置一个 header 来通知 jwplayer 正在加载什么。

      header("Content-type: text/xml");
    

    【讨论】:

      【解决方案2】:

      这一行:&lt;?xml version="1.0"?&gt; 被称为XML Declaration,它是可选的。因此,只要您使用有效的 XML,无论该行是否存在都不会产生任何影响。

      由于 RSS 是基于 XML 的,因此您无需担心该行是否存在。

      我希望这可以澄清你的这部分问题。

      由于问答通常最适合每个问题,以下是另外两个:

      【讨论】:

        猜你喜欢
        • 2014-04-01
        • 2014-01-06
        • 2012-06-23
        • 1970-01-01
        • 1970-01-01
        • 2013-02-05
        • 2014-12-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多