【问题标题】:Undefined item element XML/RSS未定义的项目元素 XML/RSS
【发布时间】:2013-12-16 15:51:46
【问题描述】:

我修改了 Wordpress RSS 提要,但收到 RSS 验证错误。我该如何解决这些问题?我在哪里/如何定义这些名称空间等?

未定义的项目元素:内容:自定义

http://tinyurl.com/npgmha3

【问题讨论】:

  • 哇,我从未见过注册了这么多命名空间的 XML 文件!然而,web.resource.org/rss/1.0/modules/content(重定向自purl.org/rss/1.0/modules/content)的页面可能定义了该命名空间,但没有提及content:custom 元素。 purl.org/rss/1.0/modules/image 给出了一个 404,虽然它对 XML 命名空间有效,但对于 purl.org 下定义的命名空间来说非常奇怪......
  • 假设它的意图是 this image module 我也看不到那里提到 featuredother 元素。我还注意到那些是明确的 RSS 1.0 模块,你的文件是 RSS 2.0,虽然我不知道这对任何东西有什么不同。
  • 是的,但是我如何添加我自己的自定义命名空间来验证呢?或者我可以将这些字段重命名为其他名称以便它们验证吗?
  • 嗯,你想让他们是什么意思?您可以定义自己的命名空间,例如xmlns:coolstuff="http://teleeon.com/my_awesome_rss_namespace",如果您只想将数据放在那里供您在其他地方使用 - URL 不必解析为任何内容,但您应该使用您控制的名称空间。但是没有现有的读者会知道如何使用这些字段。 (无论如何,我敢打赌大多数读者会愉快地忽略您的无效字段,就像浏览器忽略无效的 HTML 一样。)
  • 我只想添加一些自定义标签,其中包含将由脚本读取的内容。 RSS feeders 不需要阅读它们。

标签: xml wordpress rss


【解决方案1】:

根据 cmets 中的讨论,您的实际问题是:

我想在我的 RSS 提要中添加一些自定义标签,以便将其视为有效提要,但我自己的脚本可以从中获取一些其他读者将完全忽略的额外信息。

在您尝试的解决方案中,您已将这些元素添加到 W3C 的验证服务知道的现有名称空间中,因此拒绝了这些元素。

定义你自己的元素的正确方法是在你自己的命名空间中——因为你控制了命名空间,除了你可以说你的元素在那个命名空间中是“错误的”。这只需要三个步骤:

  1. 选择一个您控制的 URI 作为命名空间标识符,例如http://teleeon.com/custom-rss-extensions/。您实际上不必在此 URL 中添加任何特定内容,但解释您为什么这样做的页面可能对在您的提要中遇到它的任何好奇的人有用。
  2. 将提要顶部的别名与所有现有别名一起分配给该命名空间,例如xmlns:teleeon="http://teleeon.com/custom-rss-extensions/"
  3. 为所有元素(和属性)添加自定义命名空间别名的前缀,例如<teleeon:customContent teleeon:key='test_field'>fasdfsadfsadf åäö http://www.adasdasd.com</teleeon:customContent>

如果您想将图像和自定义字段作为单独的命名空间,只需对第二个命名空间重复步骤 1 到 3。

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多