未定义内容上的命名空间前缀媒体

Posted

技术标签:

【中文标题】未定义内容上的命名空间前缀媒体【英文标题】:Namespace prefix media on content is not defined 【发布时间】:2016-11-29 19:55:26 【问题描述】:

我正在尝试从头开始构建自定义 RSS 提要,并希望包含一个我可以使用 Mailchimp 提取的图像。

所以我当前的 RSS 项目如下所示:

<item>
    <link><?php echo get_permalink($beforeAfter->procedureID); ?></link>
    <media:content url="<?php echo get_bloginfo('url').'/wp-content/uploads/before-after/md/'.$beforeAfter->after_img;?>" type="image/jpg" />
    <?php rss_enclosure(); ?>
    <?php do_action('rss2_item'); ?>
</item>

但是当我查看它时,我得到了错误:

第 15 行第 124 列的错误:内容上的命名空间前缀媒体是 未定义

如果我删除 &lt;media:content&gt; 行,错误就会消失。任何想法为什么会出现错误,为什么它不能正确读取?

以下是我用作参考的一些链接: http://www.rssboard.org/media-rss#media-content http://kb.mailchimp.com/merge-tags/rss-blog/feedblock-rss-merge-tags

【问题讨论】:

有人请解释一下否决票? 【参考方案1】:

见http://www.rssboard.org/media-rss#namespace-declaration:

媒体 RSS 的命名空间定义为 http://search.yahoo.com/mrss/

例如:

<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">

&lt;media:content/&gt; 元素的父元素之一上包含xmlns:media 声明。

【讨论】:

谢谢,你救了我的命!我不知道为什么会出现这个错误...... 看起来好像 yahoo 的媒体命名空间定义不再存在:wget search.yahoo.com/mrss --2018-02-16 19:34:19-- search.yahoo.com/mrss Resolving search.yahoo。 com... 63.250.200.63 正在连接到 search.yahoo.com|63.250.200.63|:80... 已连接。已发送 HTTP 请求,等待响应... 302 找到位置:video.search.yahoo.com/mrss [以下] --2018-02-16 19:34:19-- video.search.yahoo.com/mrss 正在解析 video.search.yahoo.com... 63.250.200.63重用与 search.yahoo.com:80 的现有连接。已发送 HTTP 请求,等待响应... 404 "不再存在";见***.com/questions/27613891/…

以上是关于未定义内容上的命名空间前缀媒体的主要内容,如果未能解决你的问题,请参考以下文章

JAXB:为啥在生成的 xml 文档中未使用定义的命名空间前缀?

org.apache.jasper.JasperException:未指定默认命名空间时,函数测试必须使用前缀

接收解析 XML:未绑定前缀错误和属性缺少 Android 命名空间前缀

XML 属性未获取命名空间前缀

XML:一个命名空间前缀被声明为未声明,而事实上它是

调用在另一个命名空间中定义的 PHP 函数,不带前缀