2017-01-18 19 views
0

Googleのフィードローディングサービスが無効になっていたため、異なるプロトコルやドメイン間でxmlフィードを表示する新しい方法を見つけるのに苦労しました。私はブログをウェブサイトにフィードする必要があります。ウェブサイトはhttpsで、ブログはそうではありません。私はここでいくつかの成功、 を持っているだけでタイトルを取得します。私は、リンクにタイトルをラップし、それをliに挿入する必要があります。私は今、すべてのXMLが返さ取得することができます クロスドメインxmlを取得してjQueryを解析するPHPプロキシ

<?php 
    function download_page($path){ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$path); 
    curl_setopt($ch, CURLOPT_FAILONERROR,1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 15); 
    $retValue = curl_exec($ch);   
    curl_close($ch); 
    return $retValue; 
} 

$sXML = download_page('https://www.external.com/feeds/feed.xml'); 
$oXML = new SimpleXMLElement($sXML); 

$items = $oXML->entry; 
$i = 0; 
foreach($items as $item) { 
    $title = $item->title; 
    $link = $item->link; 
    echo '<li>'; 
    foreach($link as $links) { 
    $loc = $links['href']; 
    echo "<a href=\"$loc\">"; 
} 
echo $title; 
echo "</a>";; 
echo "</li>"; 
if(++$i == 3) break; 
} 
?> 

EDIT、: は、ここにパスが私のプロキシ(/SSI/Processor/feedProxy.php)で働いて、DOM

にそれを取得する必要があることを手に入れましたPHPでフォーマットされています。私はそれをDOM w/jQueryに挿入することはできません! と私のjQueryの

$(function(){ 
    $.ajax({ 
    type: "GET", 
    url:'/SSI/Processor/feedProxy.php', 
    dataType: "html", 
    success: function(html) { 
     console.log(html); 
     //console log is showing the formatted HTML 
     $('#feeds').html(html); 
    }); 
}); 

私はPHPでそれを解析する方法に苦しんでいます。次のように出力する必要があります。<li><a href="linkfromxml">link text</a></li>

divに追加する必要があります。どんな助けでも大歓迎です。あなたの時間をありがとう!

+1

申し訳ありませんが、私はそれを読み違えによる一貫性のないフォーマット – charlietfl

+1

dataType:'html'dataType

xmlに変更にそれを設定しています本当にhtmlを送信 – charlietfl

+0

私は書式設定をお詫び申し上げます。 htmlの –

答えて

1

あなたはHTMLを戻ってきているが、あなたは、あなたがしている時に必ずなぜあなたはAJAXでフォームのXMLを求めているわけではない