Javascript 使用node.js从url和循环解析xml文件以获取其中的所有url

Javascript 使用node.js从url和循环解析xml文件以获取其中的所有url,javascript,xml,node.js,Javascript,Xml,Node.js,我正在使用节点模块xml2js。我的xml文件的格式如下: <?xml version="1.0" encoding="UTF-8" ?> <?xml-stylesheet type="text/xsl"?> <?xml-stylesheet type="text/css" media="screen" href="some url" ?> <rss xmlns:itunes="http://www.itunes.com/dtds

我正在使用节点模块
xml2js
。我的
xml
文件的格式如下:

<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl"?>
    <?xml-stylesheet type="text/css" media="screen" href="some url" ?>
        <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
            <channel>
                <item>
                    <pubDate>Fri, 19 Sep 2014 18:00:08 GMT</pubDate>
                    <guid isPermaLink="false">http://www.example0.com</guid>
                </item>
                <item>
                    <pubDate>Fri, 19 Sep 2014 17:52:25 GMT</pubDate>
                    <guid isPermaLink="false">http://www.example1.com</guid>
                </item>
            </channel>
        </rss>
您可以使用该模块提取所需的URL。 您提到的模块在内部使用
saxjs

以下是代码(粗略切割):

输出为:

http://www.example0.com
http://www.example1.com
UPD:

要从internet获取XML并对其进行处理,请使用以下模块:


如果xml文件来源于url而不是本地可用的url,这是否有效?是的,请参阅更新的答案。使用
请求
模块获取可读流
'use strict';

var sax = require('sax');
var fs = require('fs');

var filePath = __dirname + '/' + 'foo.xml';
var isTextPending = false;

var saxStream = sax.createStream(true);
saxStream.on('error', function (e) {
  console.error(e);
});

saxStream.ontext = function (text) {
  if(isTextPending) {
    console.log(text);
    isTextPending = false;
  }
};

saxStream.on('opentag', function (node) {
  if(node.name === 'guid' && node.attributes.isPermaLink === 'false') {
    isTextPending = true;
  }
});

fs.createReadStream(filePath)
  .pipe(saxStream);
http://www.example0.com
http://www.example1.com
var request = require('request');

var href = 'http://SOME_URL.xml';

request(href)
  .pipe(saxStream);