使用NodeJS读取XML托管文件
Read XML hosted file with NodeJS
好的,所以我尝试使用NodeJS必须提供的多个XML库,但我似乎不知道如何让NodeJS从网站上读取XML文件。
我可以使用http.request、http.get等来提取文件,但让NodeJS能够对XML文件中的数据执行任何操作则另当别论。
我确信,当我用XML流将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);
});
});
我不明白的是,使用Twitter在xml.on("data")部分可以很好地输出,但使用选项(cloud.tfl.gov.uk)时,即使我在数据函数中放入console.log("hi"),也不会输出任何结果。
我知道url在创建了它连接的变量xml输出后输出console.log(xml)或console.log(response)是正确的。如果有任何帮助,我将不胜感激。我已经在这件事上坚持了整整两天了。
在<?xml
标记之前有一个字节顺序标记,该xml流在一位上绊倒,使其无法读取标记中的编码。这意味着你需要自己提供。
取而代之的是:
response.setEncoding('utf8');
var xml = new XmlStream(response);
只需这样做:
response.setEncoding('utf8');
var xml = new XmlStream(response, 'utf8');
实际上,在流上设置编码是可选的。
var xml = new XmlStream(response, 'utf8');
效果很好。
更多信息请点击此处:http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8
如果您查看从response
而不是xml
发出的缓冲区,则缓冲区以开始
<Buffer ef bb bf 3c 3f 78 6d ...>
前3个字节是utf8的字节顺序标记,之后就是标记的开头。xml-stream
期望<?xml
标记与文件开头之间只有空白,但字节顺序标记不算作空白。
相关文章:
- 我应该如何从xml文件构建一个javascript页面
- 显示IIS上javascript文件(SOAP请求)的XML响应
- 如何使用javascript或jquery mobile从url读取和显示XML文件
- 如何使用JQUERY解析大型XML文件并将其可视化为HTML格式
- Javascript/JQuery.本地缓存xml文件
- 需要帮助处理XML HTTP文件上载请求
- xml文件在js项目目录结构中的位置
- 使用jquery动态解析XML文件
- 指定单击链接时要加载的xml文件
- 使用javascript读取本地XML文件并在html页面中显示
- 将xml文件导入pdf(Acrobat)
- 使用AJAX传递的数据编辑XML文件-正在删除XML数据
- 在HTML文档中使用XML文件中的数据
- 可以't从xml文件中提取数据
- 通过JS/AAJAX在XML文件中搜索1个数据
- 搜索XML文件并使用javascript显示结果
- Windows 8市场应用程序JS,访问远程XML文件
- 如何获取XML值,然后使用javascript将它们输出到htm文件中
- 加载svg文件(xml)并使用javascript提取特定信息
- (初学者javascript)获取多个文本文件XML请求