【发布时间】:2012-07-10 08:33:39
【问题描述】:
好的,所以我尝试使用 NodeJS 必须提供的多个 XML 库,但我似乎无法弄清楚如何让 NodeJS 从网站读取 XML 文件。
我可以使用 http.request、http.get 和所有这些来提取文件,但是让 NodeJS 能够对 XML 文件中的数据实际执行任何操作是另一回事。
我确定我一定会遗漏一些东西,就像我使用 xml-stream 将 XML 转换为 JS 时一样;它不能从网站上使用它;我的代码在我托管文件时运行,但是我使用的是 api,它们只使用 XML。
当前代码:
var http = require('http');
var XmlStream = require('xml-stream');
var options = { host: 'cloud.tfl.gov.uk',
path: '/TrackerNet/LineStatus'};
var twitter = { host: 'api.twitter.com',
path: '/1/statuses/user_timeline.rss?screen_name=nwhite89'}
var request = http.get(options).on('response', function(response) {
response.setEncoding('utf8');
var xml = new XmlStream(response);
xml.on('updateElement: item', function(item) {
item.title = item.title.match(/^[^:]+/)[0] + ' on ' +
item.pubDate.replace(/ +[0-9]{4}/, '');
});
xml.on('text: item > pubDate', function(element) {
element.$text = element.$text;
});
xml.on('data', function(data) {
process.stdout.write(data);
});
});
我不明白的是在 xml.on("data") 部分使用 Twitter 可以正常输出,但是使用选项 (cloud.tfl.gov.uk) 即使我输入 console.log("hi" 也没有输出) 在 data 函数中它不会被执行。
我知道在创建它已连接的变量 xml 输出后,该 url 输出 console.log(xml) 或 console.log(response) 是正确的。任何帮助将不胜感激,我已经坚持了两天了。
【问题讨论】:
标签: javascript node.js