我正在创建一个将在不同站点上安装的小部件。小部件将解析XML feed到JPlayer,因为小部件将安装在不同的站点上AJAX不是一个选项,有没有办法用javascript解析XML而不使用AJAX。我也试图远离PHP。
这里是Simple 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 :(得分:3)
以下内容将XML字符串解析为所有主流浏览器(包括IE 6)中的XML文档。完成后,您可以使用常用的DOM遍历方法/属性,例如childNodes
和{{1}获取你想要的节点。
getElementsByTagName()
使用示例:
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");
}