如何使用 PHP+mySQL 从 XML 获取所有节点?
How can I grab all nodes from XML with PHP+mySQL?
我需要从 XML 中获取所有节点。在我尝试使用下面的 PHP 编码之后。这是工作。但是我无法从 xml.
抓取 <description>
和图像
这里是XML来自其他网站(UTF-8泰语)
http://www.dailynews.co.th/rss/rss.xml
这是我的 PHP 代码:
$Rsssurl_SQL="SELECT * from rss_feed_url";
$Rsssurl_RESULT=mysql_db_query($dbname,$Rsssurl_SQL);
while ($Rsssurl_ROW=mysql_fetch_array($Rsssurl_RESULT)) {
$request_url = $Rsssurl_ROW[1];
$xml = simplexml_load_file($request_url) or die("");
foreach($xml->channel->item as $item){
$title = $item->title;
$content = $item->description;
$date = $item->pubDate;
$link = $item->link;
/* I use ereg_replace to replace special characters */
$content=ereg_replace("<","<",$content);
$content=ereg_replace(">",">",$content);
$content=ereg_replace("&","&",$content);
$content=ereg_replace(""","\"",$content);
$content=ereg_replace("'","\'",$content);
$title=ereg_replace("<","<",$title);
$title=ereg_replace(">",">",$title);
$title=ereg_replace("&","&",$title);
$title=ereg_replace(""","\"",$title);
$title=ereg_replace("'","\'",$title);
$title=ereg_replace("\'","",$title);
$title=ereg_replace("<","", $title);
$title=ereg_replace(">","", $title);
$title=ereg_replace("&","", $title);
$title=ereg_replace("\"","", $title);
}
}
我可以抓取 <title>
、<link>
、<pubDate>
并全部插入 mySQL。但是只有<description>
我抓不到所有(图片和长文)
我尝试从许多帮助中搜索并从 W3C 学校阅读。我找不到确切的答案。
拜托,帮忙。谢谢。
使用 simplexml 时需要将值转换为字符串。试试这个:
$Rsssurl_SQL="SELECT * from rss_feed_url";
$Rsssurl_RESULT=mysql_db_query($dbname,$Rsssurl_SQL);
while ($Rsssurl_ROW=mysql_fetch_array($Rsssurl_RESULT)) {
$request_url = $Rsssurl_ROW[1];
$xml = simplexml_load_file($request_url) or die("");
foreach($xml->channel->item as $item){
$title = (string) $item->title;
$content = (string) $item->description;
$date = (string) $item->pubDate;
$link = (string) $item->link;
}
}
- 抱歉,我忘记了最后的 }。
我需要从 XML 中获取所有节点。在我尝试使用下面的 PHP 编码之后。这是工作。但是我无法从 xml.
抓取<description>
和图像
这里是XML来自其他网站(UTF-8泰语) http://www.dailynews.co.th/rss/rss.xml
这是我的 PHP 代码:
$Rsssurl_SQL="SELECT * from rss_feed_url";
$Rsssurl_RESULT=mysql_db_query($dbname,$Rsssurl_SQL);
while ($Rsssurl_ROW=mysql_fetch_array($Rsssurl_RESULT)) {
$request_url = $Rsssurl_ROW[1];
$xml = simplexml_load_file($request_url) or die("");
foreach($xml->channel->item as $item){
$title = $item->title;
$content = $item->description;
$date = $item->pubDate;
$link = $item->link;
/* I use ereg_replace to replace special characters */
$content=ereg_replace("<","<",$content);
$content=ereg_replace(">",">",$content);
$content=ereg_replace("&","&",$content);
$content=ereg_replace(""","\"",$content);
$content=ereg_replace("'","\'",$content);
$title=ereg_replace("<","<",$title);
$title=ereg_replace(">",">",$title);
$title=ereg_replace("&","&",$title);
$title=ereg_replace(""","\"",$title);
$title=ereg_replace("'","\'",$title);
$title=ereg_replace("\'","",$title);
$title=ereg_replace("<","", $title);
$title=ereg_replace(">","", $title);
$title=ereg_replace("&","", $title);
$title=ereg_replace("\"","", $title);
}
}
我可以抓取 <title>
、<link>
、<pubDate>
并全部插入 mySQL。但是只有<description>
我抓不到所有(图片和长文)
我尝试从许多帮助中搜索并从 W3C 学校阅读。我找不到确切的答案。
拜托,帮忙。谢谢。
使用 simplexml 时需要将值转换为字符串。试试这个:
$Rsssurl_SQL="SELECT * from rss_feed_url";
$Rsssurl_RESULT=mysql_db_query($dbname,$Rsssurl_SQL);
while ($Rsssurl_ROW=mysql_fetch_array($Rsssurl_RESULT)) {
$request_url = $Rsssurl_ROW[1];
$xml = simplexml_load_file($request_url) or die("");
foreach($xml->channel->item as $item){
$title = (string) $item->title;
$content = (string) $item->description;
$date = (string) $item->pubDate;
$link = (string) $item->link;
}
}
- 抱歉,我忘记了最后的 }。