Page 178 - AngularJS权威教程
P. 178
158 第 16 章 XHR 实践
数据:
$http.get('/v1/messages.json')
.success(function(data, status) {
$scope.first_msg = data[0].msg;
$scope.first_state = data[0].state;
});
16.6 使用 XML
尽管AngularJS能够以完全透明的方式来处理从服务器返回的JSON对象,我们同样可以使用
其他的数据格式。
假如服务器返回的是XML而非JSON格式的数据,需要将其转换成JavaScript对象。
幸好,有不少出色的开源库可以使用,同样,某些浏览器也内置了解析器,可以帮助我们将
XML格式转换成JavaScript对象。
在这里我们以X2JS库为例,这是一个非常好用的开源库,可以在这里下载 。
①
首选需要确保安装了X2JS库,我们通过Bower来安装:
$ bower install x2js
然后可以在页面中从googlecode.com或我们自己安装的Bower组件中引用这个库:
<script type="text/javascript"
src="https://x2js.googlecode.com/hg/xml2json.js"></script>
<!-- 或者 -->
<script type="text/javascript"
src="bower_components/xml2json/xml2json.js"></script>
创建一个工厂服务以开始使用这个轻量的XML解析器,这个服务的功能很简单,就是在DOM
中解析XML :
②
angular.factory('xmlParser', function() {
var x2js = new X2JS();
return {
xml2json: x2js.xml2json,
json2xml: x2js.json2xml_str
};
});
借助这个轻量的解析服务,可以将$http请求返回的XML解析成JSON格式,如下所示:
angular.factory('Data', [$http, 'xmlParser', function($http, xmlParser) {
$http.get('/api/msgs.xml', {
transformResponse: function(data) {
return xmlParser.xml2json(data);
}
});
});
——————————
① https://code.google.com/p/x2js/
② 解析XML和DOM没什么关系。——译者注