首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在AngularJS中处理XML services?

如何在AngularJS中处理XML services?
EN

Stack Overflow用户
提问于 2013-03-19 10:45:44
回答 5查看 83.4K关注 0票数 53

我的公司有数千个现有的xml服务,并开始在新项目中采用AngularJs。

http://angularjs.org/的教程专门使用json服务。看起来它们在控制器中进行服务调用,解析生成的JSON,并将生成的对象直接传递给视图。

我该如何处理XML?我看到了四个选择:

  1. 解析它,并将DOM对象直接传递到UI(视图)。
  2. 在服务器端对我的

服务进行了JSON包装。

  1. 将DOM对象转换为JSON,并在客户端使用一些库将其转换回来,当我在客户端手动将DOM对象post/put JSON转换为JavaScript对象时,再将其转换回来。

正确的方法是什么?为什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-03-19 13:39:59

如果选项2对您来说相对容易(例如,像在后端控制器中添加一行JSON转换),那么它可能是一项不错的投资,因为JSON在线路上更精简,客户端上的工作要少得多,而且通常是RESTful应用编程接口使用者的首选(以防有其他使用者)。

最近完成了这类工作,我想说下一个最好的方法(如果选项2比较困难)是使用response和request transformers来执行XML和JavaScript对象之间的转换,这是选项3和选项4之间的一个变体。DOMParser对象是原生代码,所以它解析XML的速度很快。将XML转换为JavaScript对象和从JavaScript对象生成XML都是非常简单的递归算法。这种方法将所有剩余的客户端代码从后端表示中解耦出来,如果您选择了选项1,情况就不同了。如果出现这样的机会,这种解耦将允许您直接使用基于JSON的RESTful接口。

选择涉及JSON/JavaScript对象的任何选项通常涉及处理阻抗不匹配问题,如XML属性、XML集合与JS数组和XML混合内容表示。如果您的数据模型足够简单,或者您不介意接受由XML和JSON之间的开箱即用的转换器提供的解决方案(例如,冗余的对象包含、表示与元素混合的不相交文本的编号文本属性),那么这对您来说可能不是问题。否则,在请求的两端都有必要定制转换行为的机会(尽管遗憾的是,据我所见,不是以声明的方式)。

票数 34
EN

Stack Overflow用户

发布于 2013-03-19 18:15:50

我建议您使用一个从xml到json的转换器。这里有一个。

https://code.google.com/p/jquery-xml2json-plugin/

转换之后,您就拥有了一个普通的JS对象,您可以在其中使用普通的angular指令来解析它们,并根据需要使用它们。

票数 16
EN

Stack Overflow用户

发布于 2013-05-04 06:52:44

我也有同样的问题。最后我做了一个小模块,把我所有的XML响应都转换成一个ng.element对象。

https://github.com/johngeorgewright/angular-xml

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15490658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档