Shp*_*pat 9 php rss xml-parsing
我正在尝试从这个链接解析RSS提要http://www.gazetaexpress.com/rss.php?cid=1,13&part=rss 但是当我尝试显示结果时它给了我以下错误:
警告:DOMDocument :: load()[domdocument.load]:打开和结束标记不匹配:强行208和http://www.gazetaexpress.com/rss.php?cid=1,13&part=rss中的描述,行:第17行的C:\ wamp\www\gazetaExpress\scripts\reader.php中的209
以及
警告:DOM文档::负载()[domdocument.load]:在标签RSS线2数据过早结束http://www.gazetaexpress.com/rss.php?cid=1,13&part=rss,线:226中第17行的C:\ wamp\www\gazetaExpress\scripts\reader.php
我用于解析的脚本是
$xmlDoc->load($xml);
$x=$xmlDoc->getElementsByTagName('item');
for ($i=0; $i<6; $i++) {
$item_title=$x->item($i)->getElementsByTagName('title')->item(0)->childNodes->item(0)->nodeValue;
$item_link=$x->item($i)->getElementsByTagName('link')->item(0)->childNodes->item(0)->nodeValue;
$item_desc=$x->item($i)->getElementsByTagName('description')->item(0)->childNodes->item(0)->nodeValue;
// and echo statements
}
Run Code Online (Sandbox Code Playgroud)
当我从这个网站尝试一些其他RSS提要时(比如运动:http://www.gazetaexpress.com/rss.php?cid = 1,24&part = rss ),它运行正常.正是上面的rss feed不起作用.有没有办法解决这个问题?任何帮助将非常感激.
这是由于使用<br>和其他自闭标签.dom试图找到这样的结局<br/>,<br从哪里开始并/>结束.现代浏览器不会有问题<tag>但是php dom功能仍然希望你保持XML标准,所以你需要找到它<singletags>并替换它们<singletags />然后它工作得很好.
当您要解析的片段不符合XML规范时(例如,没有'/'或未闭合标签的自闭标签),如果它不包含重复ID,您可以尝试使用loadHTML,它更宽松.
$xmlDoc->loadHTML($xml);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14634 次 |
| 最近记录: |