是否支持XML文件读/写?如果我正确阅读Aurelia文档,Aurelia-fetch-client和aurelia-http-client配置为/期望JSON响应类型(Aurelia docs中的HTTP服务)。我有一个非常大的SPA转换项目,并希望使用Aurelia。但是,所有页面内容和指针都在XML文档中输出并通过GUID进行映射。我是否需要构建XML到JSON的自定义例程以与Aurelia一起使用?
答案 0 :(得分:4)
Fetch API规范目前没有任何方法可以将响应流转换/转换为XML文档(https://developer.mozilla.org/en-US/docs/Web/API/Response#Methods)。 (如果浏览器支持它,则Aurelia使用相同的fetch API,或者它使用实现API匹配逻辑的polyfill(whatwg fetch))
您可以做的是将流作为文本获取,然后使用可以解析XML的库解析输出。
例如使用jQuery的parseXML(https://api.jquery.com/jQuery.parseXML/)方法:
import {autoinject} from 'aurelia-framework';
import {HttpClient} from 'aurelia-fetch-client';
import 'fetch';
import * as $ from 'jquery';
@autoinject
export class XMLFetchTest {
constructor(private http: HttpClient) {
http.configure(config => {
config
.useStandardConfiguration()
.withBaseUrl('/src/');
});
}
public activate() {
return this.http.fetch('test.xml')
.then(response => response.text())
.then(text => {
let doc = $.parseXML(text);
}));
}
}