使用javascript解析xml没有AJAX?

时间:2011-12-07 08:07:42

标签: javascript ajax xml-parsing

我正在创建一个将在不同站点上安装的小部件。小部件将解析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);

1 个答案:

答案 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");
}