如何阅读这个带有PHP标签的XML?

时间:2017-07-23 21:44:50

标签: php xml rss

我已经使用php和XML多次工作,但这种XML在开头和结尾都有Html标签:

Link To XML

没有直接链接到xml文件所以我必须使用file_get_contents()。

我正在使用这个PHP代码:

 $url = "https://www.tandildiario.com/suscripcion.php?section=4";
 $xml   = file_get_contents($url);
 $feed = simplexml_load_string($xml);

  foreach ($feed->channel->item as $item) {
  .....

我尝试不同的事情..大多数错误都是这样的:

警告:simplexml_load_string():实体:第14行:解析器错误:实体' oacute'没有在第37行的D:\ reader.php中定义

2 个答案:

答案 0 :(得分:1)

由于原始XML不正确(它在description-tags中包含未转义的HTML),因此您可以在尝试解析之前修复它。自己添加CDATA属性:

$url = "https://www.tandildiario.com/suscripcion.php?section=4";
$xml = file_get_contents($url);

// Add the CDATA tags for the description
$xml = str_replace('<description>', '<description><![CDATA[', $xml);
$xml = str_replace('</description>', ']]></description>', $xml);

$feed = simplexml_load_string($xml);

答案 1 :(得分:0)

您可以在加载XML之前解码HTML实体。

$url = "https://www.tandildiario.com/suscripcion.php?section=5";
$xml = file_get_contents($url);

$feed = simplexml_load_string(html_entity_decode($xml, null, "UTF-8"));

foreach ( $feed->channel->item as $item )   {
    echo $item->asXML();
}