2010-10-24 3 views
6

Я как бы новичок в rss-каналах, но я могу динамически создавать канал с помощью PHP, и он отлично работает. Моя проблема в том, что иногда у фида нет предметов (я ограничиваю возраст фид до 60 дней, а иногда ничего не происходило за это время).Как создать «пустую» RSS-ленту

Что бы я ожидал, так это то, что у меня просто не было бы <item> s на моей странице xml. Однако, когда я это делаю, читатель каналов (по крайней мере, один Google) кажется немного обеспокоенным. Несмотря на то, что XML правильно содержит имя фида, он отображается без заголовка.

Единственный способ, который я нашел до сих пор, чтобы исправить это, - это положить фиктивный элемент, то есть просто <item><title></title></item>. Затем мой читатель Google правильно находит имя фида, и он просто выглядит как пустой канал.

Похоже, что это решение хоки, которое, скорее всего, неверно.

Есть ли стандартный способ обработки XML-презентации для пустого канала?

Edit: Вот что пустой канал выглядит

<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" 
xmlns:dc="http://purl.org/dc/elements/1.1/" 
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" 
xmlns:admin="http://webns.net/mvcb/" 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:content="http://purl.org/rss/1.0/modules/content/"> 

<channel> 

<title>News at Example</title> 

<link>http://www.example.com/feed/sample-reviews</link> 
<description>Latest Additions to the Sample Category</description> 
<dc:language>en-us</dc:language> 
<dc:creator>Contact Example through our "contact us" page</dc:creator> 

<dc:rights>Copyright 2010 Example Technologies Inc.</dc:rights> 
<admin:generatorAgent rdf:resource="http://www.codeigniter.com/" /> 

     <item><title></title></item> 

</channel></rss> 
+2

Звучит как ошибка. В принципе нет ничего неправильного с '' меньше фида. – bobince

+0

Можете ли вы показать полный пример своего фида? –

+0

Я добавил. Без этого пробела тэг там, Google Reader не забирает главный заголовок фида по некоторым причинам. Там он работает отлично. И он отлично работает с фактическими предметами. Просто, когда нет предмета, у меня проблема. – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/478053/">neomech</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="answer-title"> <span class="text-logo margin-top-sm">A</span> <h2 class="title h4">ответ</h2> </div> <div class="item-description text-md markdown-body margin-bottom-40 voidso"> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">5<i class="fa fa-thumbs-up"></i></span> <i class="fa fa-check fa-2x"></i> </div> <div class="post-offset"> <div class="answer fmt"> <p>Пустой корм представляет собой корпус подачи (XML-материал в целом) без каких-либо предметов. Корпус должен быть действительным, чтобы он был действительным фидом.</p> <p>С <a href="http://cyber.law.harvard.edu/rss/rss.html#hrelementsOfLtitemgt" rel="nofollow noreferrer">RSS 2.0 Specification</a>, а с 2003 года:</p> <blockquote> <blockquote> <p>Канал может содержать любое количество < пункта> ов</p> </blockquote> </blockquote> <p>Однако, по крайней мере <a href="http://www.thearchitect.co.uk/schemas/rss-2_0.xsd" rel="nofollow noreferrer">one RSS XSD</a> мы можем видеть, что это не так и разработчикам это известно:</p> <pre> <xs:element name="item" type="RssItem" minOccurs="1" maxOccurs="unbounded"> <!-- HACK: According to the RSS 2.0 spec, it should strictly be possible to have zero item elements, but this makes the schema non-deterministic with regard to extensibility elements so for the moment we undid bug-fix 10231 and set minOccurs=1 to work around this problem. --> </xs:element> </pre> <p>Попробуйте ваш канал в разных клиентах. Возможно, это просто причуда реализации Google. YMMV.</p> <p>Счастливое кодирование.</p> <p><strong>Редактировать:</strong> Для удовольствия от этого см. Вопрос SO: <a href="https://stackoverflow.com/questions/1650290/where-i-can-find-the-official-xsd-schema-for-rss-2-0">Where I can find the official XSD schema for RSS 2.0?</a>. На самом деле это довольно просто: -/</p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/4009145">источник</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2010-10-24 16:31:26</span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> <!-- comments --> <div class="comments"> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">Я видел несколько дискуссий в Интернете о создании своего рода «стандартного» элемента, который указывает, что в данный момент нет элементов фида. Имеет ли смысл создать такой элемент, который задал бы проблему, не имея каких-либо проблем? – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/478053/">neomech</a></span> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">@neomech Использовать все, что работает [лучше] для данного клиента (ов). Счастливое кодирование. – <span class="text-secondary"> <small> <span>2010-10-24 20:45:53</span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <article class="board-top-1 padding-top-10"> <div class="post-col vote-info"> <span class="count">10<i class="fa fa-thumbs-up"></i></span> </div> <div class="post-offset"> <div class="answer fmt"> <p>Подача с нулевыми позициями вполне допустима. Если Google Reader не справляется с этим должным образом, он должен быть сообщен им как ошибка, и они должны его исправить.</p> </div> <div class="post-info"> <div class="post-meta row"> <p class="text-secondary col-lg-6"> <span class="source"> <a rel="noopener" target="_blank" href="https://stackoverflow.com/q/4009177">источник</a> </span> </p> <p class="text-secondary col-lg-6"> <span class="float-right date"> <span>2010-10-24 16:36:19</span> </p> <p class="col-12"></p> <p class="col-12"></p></div> </div> <!-- comments --> <div class="comments"> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">Я согласен с этим. Тем не менее, многие люди используют Google Reader (включая меня!), И я хотел бы, чтобы мой код работал правильно, тем временем у всех пользователей, у которых есть Google, по крайней мере, видят, что они должны делать. Похоже, что «взломать» что-то вроде пустого корма - это путь. – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/478053/">neomech</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">Смежные вопросы</div> <ul class="relative_list"> <li> 1. <a href="http://ru.voidcc.com/question/p-ksxkkqmb-go.html" target="_blank" title="Как создать пустую строку?"> Как создать пустую строку? </a> </li> <li> 2. <a href="http://ru.voidcc.com/question/p-slzbcrxs-rt.html" target="_blank" title="Как создать пустую таблицу MySQL?"> Как создать пустую таблицу MySQL? </a> </li> <li> 3. <a href="http://ru.voidcc.com/question/p-ucljdrwq-brd.html" target="_blank" title="Mongoid создать пустую коллекцию"> Mongoid создать пустую коллекцию </a> </li> <li> 4. <a href="http://ru.voidcc.com/question/p-mjpxfoch-boy.html" target="_blank" title="Попытка создать пустую сетку"> Попытка создать пустую сетку </a> </li> <li> 5. <a href="http://ru.voidcc.com/question/p-uzpjvxxh-hn.html" target="_blank" title="создать пустую ветку"> создать пустую ветку </a> </li> <li> 6. <a href="http://ru.voidcc.com/question/p-yqvcwpaq-xm.html" target="_blank" title="texreg - создать пустую колонку"> texreg - создать пустую колонку </a> </li> <li> 7. <a href="http://ru.voidcc.com/question/p-gzbsefya-es.html" target="_blank" title="Github создать пустую ветку"> Github создать пустую ветку </a> </li> <li> 8. <a href="http://ru.voidcc.com/question/p-zdericsp-cs.html" target="_blank" title="Как создать пустую папку в java?"> Как создать пустую папку в java? </a> </li> <li> 9. <a href="http://ru.voidcc.com/question/p-hkvwifjr-cb.html" target="_blank" title="Как создать пустую папку Zip в asp.net1.1"> Как создать пустую папку Zip в asp.net1.1 </a> </li> <li> 10. <a href="http://ru.voidcc.com/question/p-oghqfdoi-mg.html" target="_blank" title="Как создать пустую копию таблицы в кусте"> Как создать пустую копию таблицы в кусте </a> </li> <li> 11. <a href="http://ru.voidcc.com/question/p-heapwirj-hx.html" target="_blank" title="Как создать пустую пользовательскую таблицу в Wix?"> Как создать пустую пользовательскую таблицу в Wix? </a> </li> <li> 12. <a href="http://ru.voidcc.com/question/p-mskofjkk-ur.html" target="_blank" title="Как создать пустую ячейку таблицы в XSL?"> Как создать пустую ячейку таблицы в XSL? </a> </li> <li> 13. <a href="http://ru.voidcc.com/question/p-kzzizscz-vq.html" target="_blank" title="Как создать пустую консоль в R?"> Как создать пустую консоль в R? </a> </li> <li> 14. <a href="http://ru.voidcc.com/question/p-bzfcawsw-bbp.html" target="_blank" title="Как создать пустую ветку для документации"> Как создать пустую ветку для документации </a> </li> <li> 15. <a href="http://ru.voidcc.com/question/p-znfgxfhp-qz.html" target="_blank" title="Как создать «пустую» анонимную функцию в MATLAB?"> Как создать «пустую» анонимную функцию в MATLAB? </a> </li> <li> 16. <a href="http://ru.voidcc.com/question/p-mumdevuy-vt.html" target="_blank" title="Как создать пустую метрику в Graphite?"> Как создать пустую метрику в Graphite? </a> </li> <li> 17. <a href="http://ru.voidcc.com/question/p-ncfhmffg-wu.html" target="_blank" title="Hibernate. Как создать пустую таблицу из ResultSetMetaData?"> Hibernate. Как создать пустую таблицу из ResultSetMetaData? </a> </li> <li> 18. <a href="http://ru.voidcc.com/question/p-wctugcmk-vp.html" target="_blank" title="Как создать пустую таблицу с SQL?"> Как создать пустую таблицу с SQL? </a> </li> <li> 19. <a href="http://ru.voidcc.com/question/p-cxxyzeqh-brt.html" target="_blank" title="Как создать пустую матрицу в R?"> Как создать пустую матрицу в R? </a> </li> <li> 20. <a href="http://ru.voidcc.com/question/p-zllheevm-bc.html" target="_blank" title="Как создать новую (и пустую!) Ветвь «root»?"> Как создать новую (и пустую!) Ветвь «root»? </a> </li> <li> 21. <a href="http://ru.voidcc.com/question/p-hsbymhok-bpz.html" target="_blank" title="Как создать пустую анонимную таблицу в Postgres?"> Как создать пустую анонимную таблицу в Postgres? </a> </li> <li> 22. <a href="http://ru.voidcc.com/question/p-ncwwwlnp-pd.html" target="_blank" title="Как создать пустую RowMatrix в Apache Spark"> Как создать пустую RowMatrix в Apache Spark </a> </li> <li> 23. <a href="http://ru.voidcc.com/question/p-vsrorcpr-bmx.html" target="_blank" title="Создать пустую матрицу в питоне"> Создать пустую матрицу в питоне </a> </li> <li> 24. <a href="http://ru.voidcc.com/question/p-cyjmivzo-p.html" target="_blank" title="createEditableCopyOfDatabaseIfNeeded создать пустую копию db!"> createEditableCopyOfDatabaseIfNeeded создать пустую копию db! </a> </li> <li> 25. <a href="http://ru.voidcc.com/question/p-zzmelspw-nq.html" target="_blank" title="SQL Server: создать пустую строку?"> SQL Server: создать пустую строку? </a> </li> <li> 26. <a href="http://ru.voidcc.com/question/p-zbshcdxt-bgs.html" target="_blank" title="Невозможно создать пустую форму в MS Access"> Невозможно создать пустую форму в MS Access </a> </li> <li> 27. <a href="http://ru.voidcc.com/question/p-xrqxbrbb-tt.html" target="_blank" title="использование [NSString строка], чтобы создать пустую строку"> использование [NSString строка], чтобы создать пустую строку </a> </li> <li> 28. <a href="http://ru.voidcc.com/question/p-vglqqhrg-tk.html" target="_blank" title="Невозможно создать пустую папку в Gradle"> Невозможно создать пустую папку в Gradle </a> </li> <li> 29. <a href="http://ru.voidcc.com/question/p-xwijpzit-gp.html" target="_blank" title="Невозможно создать пустую строку все время C#"> Невозможно создать пустую строку все время C# </a> </li> <li> 30. <a href="http://ru.voidcc.com/question/p-weeahgcq-bcc.html" target="_blank" title="Как создать образ запуска или как получить пустую строку состояния"> Как создать образ запуска или как получить пустую строку состояния </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422009"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> Последний вопрос </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ru.voidcc.com/question/p-ugakbfwl-oy.html" target="_blank" title="Рельсы: Нет совпадений в маршруте"> Рельсы: Нет совпадений в маршруте </a> </li> <li class="side_article_list_item"> 2. <a href="http://ru.voidcc.com/question/p-rcvkcckp-mx.html" target="_blank" title="как присоединиться к tuple datetime"> как присоединиться к tuple datetime </a> </li> <li class="side_article_list_item"> 3. <a href="http://ru.voidcc.com/question/p-yozbvugn-mg.html" target="_blank" title="Незаконный старт простого рисунка - игровой фрейм"> Незаконный старт простого рисунка - игровой фрейм </a> </li> <li class="side_article_list_item"> 4. <a href="http://ru.voidcc.com/question/p-bxalqdio-mq.html" target="_blank" title="Ошибка несоответствияMigrationHistory с пользовательской моделью пользователя django"> Ошибка несоответствияMigrationHistory с пользовательской моделью пользователя django </a> </li> <li class="side_article_list_item"> 5. <a href="http://ru.voidcc.com/question/p-evpxhamc-kr.html" target="_blank" title="VB exe не находит вызов конфигурационного файла из R System/System2"> VB exe не находит вызов конфигурационного файла из R System/System2 </a> </li> <li class="side_article_list_item"> 6. <a href="http://ru.voidcc.com/question/p-fhrarvmy-kc.html" target="_blank" title="Как заставить nuget взять последнюю версию пакета?"> Как заставить nuget взять последнюю версию пакета? </a> </li> <li class="side_article_list_item"> 7. <a href="http://ru.voidcc.com/question/p-ooifmfwm-cs.html" target="_blank" title="Показывать индикацию состояния выполнения в то время как пользовательский набор ZSH запущен"> Показывать индикацию состояния выполнения в то время как пользовательский набор ZSH запущен </a> </li> <li class="side_article_list_item"> 8. <a href="http://ru.voidcc.com/question/p-koojbfgc-en.html" target="_blank" title="C# MVC, частично отображается как новая страница не внутри div"> C# MVC, частично отображается как новая страница не внутри div </a> </li> <li class="side_article_list_item"> 9. <a href="http://ru.voidcc.com/question/p-sqycggvc-bn.html" target="_blank" title="Создание индексации LSI с использованием первичного ключа в качестве ключа partion и одного атрибута из документа DynamoDb"> Создание индексации LSI с использованием первичного ключа в качестве ключа partion и одного атрибута из документа DynamoDb </a> </li> <li class="side_article_list_item"> 10. <a href="http://ru.voidcc.com/question/p-femresll-bck.html" target="_blank" title="Android бесконечный фоновой цикл для выдачи уведомлений"> Android бесконечный фоновой цикл для выдачи уведомлений </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> Смежные вопросы</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ru.voidcc.com/question/p-ksxkkqmb-go.html" target="_blank" title="Как создать пустую строку?"> Как создать пустую строку? </a> </li> <li class="side_article_list_item"> 2. <a href="http://ru.voidcc.com/question/p-slzbcrxs-rt.html" target="_blank" title="Как создать пустую таблицу MySQL?"> Как создать пустую таблицу MySQL? </a> </li> <li class="side_article_list_item"> 3. <a href="http://ru.voidcc.com/question/p-ucljdrwq-brd.html" target="_blank" title="Mongoid создать пустую коллекцию"> Mongoid создать пустую коллекцию </a> </li> <li class="side_article_list_item"> 4. <a href="http://ru.voidcc.com/question/p-mjpxfoch-boy.html" target="_blank" title="Попытка создать пустую сетку"> Попытка создать пустую сетку </a> </li> <li class="side_article_list_item"> 5. <a href="http://ru.voidcc.com/question/p-uzpjvxxh-hn.html" target="_blank" title="создать пустую ветку"> создать пустую ветку </a> </li> <li class="side_article_list_item"> 6. <a href="http://ru.voidcc.com/question/p-yqvcwpaq-xm.html" target="_blank" title="texreg - создать пустую колонку"> texreg - создать пустую колонку </a> </li> <li class="side_article_list_item"> 7. <a href="http://ru.voidcc.com/question/p-gzbsefya-es.html" target="_blank" title="Github создать пустую ветку"> Github создать пустую ветку </a> </li> <li class="side_article_list_item"> 8. <a href="http://ru.voidcc.com/question/p-zdericsp-cs.html" target="_blank" title="Как создать пустую папку в java?"> Как создать пустую папку в java? </a> </li> <li class="side_article_list_item"> 9. <a href="http://ru.voidcc.com/question/p-hkvwifjr-cb.html" target="_blank" title="Как создать пустую папку Zip в asp.net1.1"> Как создать пустую папку Zip в asp.net1.1 </a> </li> <li class="side_article_list_item"> 10. <a href="http://ru.voidcc.com/question/p-oghqfdoi-mg.html" target="_blank" title="Как создать пустую копию таблицы в кусте"> Как создать пустую копию таблицы в кусте </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://ru.voidcc.com/contact">Свяжитесь с нами</a></li> <li>© 2020 RU.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>