Javascript 将XML数据转换为Json格式AngularJS
我正在尝试使用AngularJS的Treeview指令。存储过程正在返回xml。tree view指令采用json格式。控制器将从服务中获取数据。我一直在尝试在服务中将xml转换为json 以下是xml结构:Javascript 将XML数据转换为Json格式AngularJS,javascript,xml,json,angularjs,c#-4.0,Javascript,Xml,Json,Angularjs,C# 4.0,我正在尝试使用AngularJS的Treeview指令。存储过程正在返回xml。tree view指令采用json格式。控制器将从服务中获取数据。我一直在尝试在服务中将xml转换为json 以下是xml结构: <Company Data="New Company"> <Manager Data="Working"> <Employee Data="ABC" /> <Employee Data="DEF" /> <E
<Company Data="New Company">
<Manager Data="Working">
<Employee Data="ABC" />
<Employee Data="DEF" />
<Employee Data="GHI">
<SubEmployee Data="Approval">
<Stuff Data="Financial" />
<Stuff Data="Consol" />
</SubEmployee>
<SubEmployee Data="Rolled-Over">
<Stuff Data="Corporate" />
</SubEmployee>
</Employee>
</Manager>
</Company>
你有两个选择:
如果您阅读上述链接上的答案,您将看到为什么选项1更可取。在这些格式之间转换可能会有问题。如果该页面中有JQuery可用,则可以通过执行
var data=JQuery(data)将XML转换为DOM对象代码>。然后,使用jQuery选择器从中提取所需的数据
一些例子:
// Extract an attribute from a node:
$scope.event.isLive = jQuery(data).find('event').attr('state') === 'Live';
// Extract a node's value:
$scope.event.title = jQuery('title', data).text();
有点晚了,但我也不得不考虑这个选项,因为我将使用一个只解析为XML的CMS。在游戏的这个阶段我不知道为什么。。。但我离题了
在D区发现了这一点,似乎有潜力:
基本上,您请求获取XML,然后在另一个函数中将其转换为JSON。假设您仍然在提取XML数据,但您将能够使用JSON,这将节省您大量的时间
EX-from-Site(需要第三方插件X2JS)
还有一个注意事项,如果您像我一样使用Angular,那么有人已经创建了一个很好的插件服务来使用:
您是否在问如何使用javascript将XML转换为JSON?我想将XML转换为指定的JSON格式。非常感谢。我从.edmx获取XML。存储过程正在返回xml。是的,第二个选项很复杂。我应该在调用存储过程的.cs文件中将xml转换为json吗?你有什么建议吗?我对.edmx文件一无所知。看起来您正在使用c#。下面是c语言中xml到json的一个非常好的答案#谢谢。我试图实现。Json、AngularJS对我来说是新的。它使用静态类JsonConvert将xml转换为Json。所以它是在哪个名称空间下。我需要添加哪个指令或程序集引用?在我链接到的问题上问这个问题会更好。
// Extract an attribute from a node:
$scope.event.isLive = jQuery(data).find('event').attr('state') === 'Live';
// Extract a node's value:
$scope.event.title = jQuery('title', data).text();
var app = angular.module('httpApp', []);
app.controller('httpController', function ($scope, $http) {
$http.get("Sitemap.xml",
{
transformResponse: function (cnv) {
var x2js = new X2JS();
var aftCnv = x2js.xml_str2json(cnv);
return aftCnv;
}
})
.success(function (response) {
console.log(response);
});
});