2011-12-07 11 views
0

私は異なるサイトにインストールされるウィジェットを作成しています。ウィジェットは異なるサイトにインストールされるため、ウィジェットはJPlayerへのXMLフィードを解析します.AJAXはオプションではありません.AJAXを使用せずにXMLをjavascriptで解析する方法はありますか?私はPHPからも離れています。JavaScriptを使用してxmlを解析するとAJAXを使用しないでください。

ここでは単純なXMLのコードですが、私はjavascriptで書き直したいと思います。

$url = 'http://www.startalkradio.net/?page_id=354'; 
$rss = simplexml_load_file($url); 

$items = $rss->channel->item; 
<?php 


$i = 0; 
$data = array(); 
foreach ($items as $item) { 
    $data[] = array(
     'title' => (string) $item->title, 
     'mp3' => (string) $item->enclosure['url'], 

    ); 
    if (++$i == 3) break; 
} 


$jsdata = json_encode($data); 
+0

あなたはどのJavascriptフレームワークを使用していますか? btw、なぜ私はajaxがオプションではないのか分かりませんでした... – JMax

+0

私は人々が自分のサイトにウィジェットのテキストをカットアンドペーストできるようにしたいと思います。単純なhtmlサイトであれば、PHPは動作しません。ホストされているblogspotやwordpressのようなサイトもPHPウィジェットを許可していません。 –

+2

複製のhttp://stackoverflow.com/questions/649614/xml-parsing-in-javascript – pna

答えて

3

あなたが得るために、このようなchildNodesgetElementsByTagName()いつものようにDOMのトラバーサルメソッド/プロパティを使用することができることをしたら、次はIE 6を含むすべての主要なブラウザでXMLドキュメントに解析し、XML文字列ますあなたが望むノード。

var parseXml; 

if (typeof window.DOMParser != "undefined") { 
    parseXml = function(xmlStr) { 
     return (new window.DOMParser()).parseFromString(xmlStr, "text/xml"); 
    }; 
} else if (typeof window.ActiveXObject != "undefined" && 
     new window.ActiveXObject("Microsoft.XMLDOM")) { 
    parseXml = function(xmlStr) { 
     var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM"); 
     xmlDoc.async = "false"; 
     xmlDoc.loadXML(xmlStr); 
     return xmlDoc; 
    }; 
} else { 
    throw new Error("No XML parser found"); 
} 

使用例:

var xml = parseXml("<foo>Stuff</foo>"); 
alert(xml.documentElement.nodeName); 
関連する問題