xml - 如何在 AngularJS 中处理 XML 服务?

标签 xml service angularjs backend

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

教程结束于 http://angularjs.org/专门使用 json 服务。看起来他们在 Controller 中进行服务调用,解析生成的 JSON,并将生成的对象直接传递给 View 。

我可以用 XML 做什么?我看到四个选项:

  1. 解析它并将 DOM 对象直接传递给 UI( View )。

  2. 在服务器端围绕我的 XML 服务放置一个 JSON 包装器。

  3. 在客户端使用一些库将 DOM 对象转换为 JSON,并在我发出 post/put 请求时将其转换回来。

  4. 在客户端手动将 DOM 对象转换为 JavaScript 对象。

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

最佳答案

如果选项 2 对您来说相对容易(例如,在您的后端 Controller 中添加一行 JSON 转换),那么它可能是一项不错的投资,因为 JSON 在网络上更精简,工作量要少得多客户端,通常是 RESTful API 消费者的首选(如果有其他消费者)。

最近完成了此类工作,我想说下一个最佳路径(如果选项 2 很难)是使用响应和请求 transformers在 XML 和 JavaScript 对象之间执行转换,这是选项 3 和选项 4 之间某处的变体。DOMParser 对象是 native 代码,因此它解析 XML 的速度非常快。将 XML DOM 转换为 JavaScript 对象和从 JavaScript 对象生成 XML 都是相当简单的递归算法。这种方法将所有其余的客户端代码与后端表示分离,如果您选择选项 1 则不会出现这种情况。这种分离将允许您直接使用基于 JSON 的 RESTful 接口(interface),如果出现这样的机会。

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

关于xml - 如何在 AngularJS 中处理 XML 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15490658/

相关文章:

java - 将动态 XML/JSON 内容与静态标记化负载进行比较并检索标记值

c# - 具有多线程服务的数据库连接池

javascript - 如何在 angular-bootstrap-datetimepicker 输入字段中显示自定义日期格式?

python - 使用 python 迭代解析一个巨大的 xml 文件但出现错误

xml - 使用 Jackson 库漂亮地打印 XML

javascript - Angular:服务与组件中的功能?

api - 面向服务与面向API

javascript - Bower 安装后出现的消息是 "Cannot read property '原型(prototype)'未定义"

javascript - 为什么我无法使用 Express' Router() 和 'GET' 方法访问我的参数

android - textAlignment 中心不适用于 jellyBean