0

PHP アプリケーションで simpleXML を使用しています。

メディア要素を「メディア グループ」でラップする必要があります。これまでのxml出力は次のとおりです。

...
<item>
<title>02:15</title>
<link>http://www.realcardio.com</link>
<description>Workout with Hugo to get bigger biceps</description>
<pubDate>08/14/2012</pubDate>
<media:credit role="author">workout title goes here</media:credit>
<media:content url="http://youtu.be/21EpHRJTT34"/>
<media:thumbnail url="http://img.youtube.com/vi/21EpHRJTT34/1.jpg"/>
<jwplayer:start>150</jwplayer:start>
<jwplayer:duration>285</jwplayer:duration>
<jwplayer:backcolor>#FFCC00</jwplayer:backcolor>
<jwplayer:message>This is a test message to display to the user</jwplayer:message>
<jwplayer:routineID>26</jwplayer:routineID>
</item>
...

次のようにメディア要素をグループ化するだけです。

<media:group>
   <media:credit role="author">workout title goes here</media:credit>
   <media:content url="http://youtu.be/21EpHRJTT34"/>
   <media:thumbnail url="http://img.youtube.com/vi/21EpHRJTT34/1.jpg"/>
</media:group>

これまでにxmlファイルを作成するために使用しているコードは次のとおりです。

...
$item = $channel->addChild( 'item' );
$item->addChild( 'title', $minsandsecs );
$item->addChild( 'link', 'http://www.realcardio.com' );
$item->addChild( 'description', $viddesc );
$item->addChild( 'pubDate', '08/14/2012' );

$mediaCredit = $item->addChild( 'credit', 'workout title goes here','http://search.yahoo.com/mrss/' );
$mediaCredit->addAttribute( 'role', 'author' );

$mediaContent = $item->addChild( 'content', '', 'http://search.yahoo.com/mrss/' );
$mediaContent->addAttribute( 'url', $vidsource );

$mediaThumbnail = $item->addChild( 'thumbnail', '', 'http://search.yahoo.com/mrss/' );
$mediaThumbnail->addAttribute( 'url', $imgloc );

$item->addChild( 'start',$vidstart, 'http://developer.longtailvideo.com/trac/wiki/FlashFormats' );
$item->addChild( 'duration',$viddur, 'http://developer.longtailvideo.com/trac/wiki/FlashFormats' );
$item->addChild( 'backcolor',$vidbackcolor, 'http://developer.longtailvideo.com/trac/wiki/FlashFormats' );
$item->addChild( 'message', $vidmessage, 'http://developer.longtailvideo.com/trac/wiki/FlashFormats' );
$item->addChild( 'routineID', $routineID, 'http://developer.longtailvideo.com/trac/wiki/FlashFormats' );
...

私が見落としているのは単純なことだと確信しています。ありがとう!

4

1 に答える 1

0

あなたは<media:group>どこにも要素を作成していません、それが主な問題です。それ以外の場合、不足しているのは、で名前空間プレフィックスを指定することだけmedia:ですaddChild()

$mediaGroup = $item->addChild('media:group', '', 'http://search.yahoo.com/mrss/');

$mediaCredit = $mediaGroup->addChild('media:credit', 'workout title goes here', 'http://search.yahoo.com/mrss/');
$mediaCredit->addAttribute('role', 'author');

$mediaContent = $mediaGroup->addChild('media:content', '', 'http://search.yahoo.com/mrss/');
$mediaContent->addAttribute('url', $vidsource);

$mediaThumbnail = $mediaGroup->addChild('media:thumbnail', '', 'http://search.yahoo.com/mrss/');
$mediaThumbnail->addAttribute('url', $imgloc);
于 2012-08-15T21:44:40.520 に答える