簡體   English   中英

如何使用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("&lt;","<",$content);
$content=ereg_replace("&gt;",">",$content);
$content=ereg_replace("&amp;","&",$content);
$content=ereg_replace("&quot;","\"",$content);
$content=ereg_replace("&#039;","\'",$content);

$title=ereg_replace("&lt;","<",$title);
$title=ereg_replace("&gt;",">",$title);
$title=ereg_replace("&amp;","&",$title);
$title=ereg_replace("&quot;","\"",$title);
$title=ereg_replace("&#039;","\'",$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;
    }
}
  • 對不起,我忘了}最后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM