我目前正在开发一个使用php的simplexml来解释来自多个站点的rss源的应用程序。我已经设法让它与Atom和RSS提要一起使用,但是有时只有一个提要有效,这实际上没有意义。 Feed位于http://www.popsci.com/rss.xml。我想知道饲料本身是否格式错误,或者是否有可能正在做的事情是有效的,但不寻常。我上下打量了但是找不到任何错误。我的代码完美地解释了许多其他的提要,所以我想知道为什么这个给它带来了麻烦。而且有时候。我的意思是,有时它会成功解释Feed,但有时候,对simplexml_load_file()
的调用会失败并返回false。
我确实有一个错误日志,这是已经报告的内容(每次失败都是一样的):
[08-Nov-2010 03:30:17] PHP警告:simplexml_load_file()[function.simplexml-load-file]:http://www.popsci.com/rss.xml:1:解析器错误:期望开始标记,'<'在第15行的/Applications/MAMP/cmb/cron.php中找不到
[08-Nov-2010 03:30:17] PHP警告:simplexml_load_file()[function.simplexml-load-file]:line在第15行的/Applications/MAMP/cmb/cron.php中
[08-Nov-2010 03:30:17] PHP警告:simplexml_load_file()[function.simplexml-load-file]:^在第15行的/Applications/MAMP/cmb/cron.php
但我不确定如何解决这些错误,如果有人能指出我正确的方向,我将不胜感激。谢谢! (Pron.php中的第15行是对simplexml_load_file()
的调用)
答案 0 :(得分:1)
不幸的是,您实际上唯一可以做的就是向Feed发布者抱怨其Feed中的狡猾数据,因为明确禁止XML解析器尝试解析格式错误的XML。他们应该终止并抛出错误。
答案 1 :(得分:1)
处理糟糕饲料的一个好方法是通过饲料燃烧器运行它们。
这是一款谷歌工具,可以为您标准化输出,并在过去为我修复错误。
希望对你有用:)
Jase