angularjs中怎样将xml字符串xml转化为字符串xml文件

之前写过一篇 《javascript/jQuery解析或转换json和xml》链接是http://my.oschina.net/ososchina/blog/343748,这篇博客详细解释了json使用 JSON.js
window.eval() ,jQuery
与字符串互相转换的方法 ,顺便也说了一点jQuery解析xml文档的方法,这里着重论述javascript操作xml。
顺便提一下,今天做项目有一点问题,如何让服务程序接口返回的就是json,而不需要 使用 jQuery.ajax设置 dataType就能得到json呢?
众所周知,服务端的 数据以json字符串输出,文档类型是 “text/html”,因此返回前台的默认是字符串,如果返回前台的指定为json,
需要设置http响应头application/json,这样返回的直接就是json对象了。
注意,必须在输出流之前设置响应头
//java&jsp&servlet中,在struts中有2种输出json的方式,一种是类似serlvet,另一种是进行json配置,在springmvc中可以直接返回json
protected&void&doPost(HttpServletRequest&req,&HttpServletResponse&res)
&&&&throws&ServletException,&IOException
&&&&&&response.setContentType("application/charset=UTF-8");&//
&&&&&&request.setCharacterEncoding("UTF-8");
&&&&&&PrintWriter&out&=&request.getWriter();
&&&&&&out.println("{'name':'zhangsan','age':20,'gender':'M'}");&&//json一般不用来手写,请借助json工具包实现
&&&&&&out.close();
header('application/charset=utf-8');
echo&"{'name':'zhangsan','age':20,'gender':'M'}";
好了,现在说今天的主角&
原生javascript解析xml文档
var&loadXML&=&function(xmlString){&//构建xmldoc对象
&&&&&var&xmlDoc=
&&&&&&if(window.DOMParser)&&//IE9+,FF,webkit
&&&&&&&&&&&&try{
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&domParser&=&new&&DOMParser();
&&&&&&&&&&&&&&&&xmlDoc&=&domParser.parseFromString(xmlString,&'text/xml');
&&&&&&&&&&&&}catch(e){
&&&&&&&&&&&&}
&&&&&&&&else&if(!window.DOMParser&&&&window.ActiveXObject)
&&&&&&&&{&&&//window.DOMParser&判断是否是非ie浏览器
&&&&&&&&&&&&var&xmlDomVersions&=&['MSXML2.DOMDocument','Microsoft.XMLDOM'];
&&&&&&&&&&&&for(var&i=0;i&xmlDomVersions.i++){
&&&&&&&&&&&&&&&&try{
&&&&&&&&&&&&&&&&&&&&xmlDoc&=&new&ActiveXObject(xmlDomVersions[i]);
&&&&&&&&&&&&&&&&&&&&xmlDoc.async&=&
&&&&&&&&&&&&&&&&&&&&xmlDoc.loadXML(xmlString);&//loadXML方法载入xml字符串
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&}catch(e){
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}
&&&&&&&&else{
&&&&&&&&&&&&return&
&&&&&&&&return&xmlD
给个数据源
var&datasource&=&'&?xml&version="1.0"&encoding="utf-8"&?&&&
&bookstore&&&
  &book&id="No1"&&&
&&&&  &title&An&Introduction&to&XML&/title&&&
&&&&  &author&Chunbin&/author&&&
&&&&  &year&2010&/year&&&
&&&&  &price&98.0&/price&&&  &&
&&&&&/book&&&
  &book&id="No2"&&&
&&&&  &title&The&Performance&of&DataBase&/title&&&
&&&&  &author&John&/author&&&
&&&&  &year&1996&/year&&&
&&&&  &price&discount='7'&data='8'&56.0&/price&&&
&&&&&/book&&&
&/bookstore&';
然后来使用,用法很简单
var&xmlDoc&=&loadXML(datasource);
if(xmlDoc)&&//xml的解析和html&doc几乎完全相同,可以使用&xmlDoc.getElementById(),xmlDoc.getElementsByTagName(),xmlDoc.getElementsByClassName
&&&var&books=&xmlDoc.getElementsByTagName('book');
&&&var&book&=&xmlDoc.getElementById('No2');
&&&if(books)
&&&&&&&&for(var&i=0;i&books.i++)
&&&&&&&&&&&&var&title&=&books[i].getEelementsByTagName('title')[0].firstChild.nodeV&//确实有点长,因为
&&&&&&&&&&&&var&author&=&books[i].getEelementsByTagName('author')[0].innerHTML;//变短点
&&&&&&&&&&&&var&year&=&books[i].getEelementsByTagName('year')[0].innerHTML;&//或者这样
&&&&&&&&&&&&var&price&=&Number(books[i].getEelementsByTagName('price')[0].innerHTML);
&&&&&&&&&&&&
&&&&&&&&&&//有值了,下一步不是我的事了
&&&&&&&&//获取属性使用&attributes,得到的是nodevaluemap
&&&&&&&var&attrs&=&book.
&&&&&&&for(var&i=0;i&attrs.i++)
&&&&&&&&&&&var&attr&=&attrs[i];
&&&&&&&&&&&var&attr_name&=&attr.
&&&&&&&&&&&var&attr_value&=&&attr.&&&&&&&&&&
&&&&&&&}&&&
-----------------------------------------------------------------
常用方法,属性api
attributes:&
childElementCount
childNodes
firstChild
firstElementChild
innerHTML(只读)
lastElementChild
nextSibling
ownerDocument
parentNode
prefix(新)--&表示前缀,xml允许前缀
namespaceURI(新)--&表示命名空间
previousSibling
注意:xml是字符串数据,一般来说是只读的属性,即使使用某些手段修改,但也不能做到持久化。因为除了文件上传外js不允许进行io操作
javascript解析xml就此结束
参考链接:
try doing it!
& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区AngularJS+ioinc(42)
在这篇文章中,我们将谈谈如何在Angular JS中将XML文件转换为JSON。大家都知道Angular&JS是开发应用程序的JavaScript框架。所以基本上Angular&&JS期望得到的响应式JSON格式的。因此,在你开始对数据进行操作之前,建议返回JSON格式的数据。在这篇文章中,我们会使用Angular&JS $http服务加载一个本地的XML文件,并将这个XML文件转换成JSON。如果你是Angular &JS新手,请阅读《Angular&&JS》。希望你会喜欢这篇文章。
我曾发表过一篇有关于Angular&JS $http服务的文章:《》
下载源代码:&
首先创建一个HTML页面。
&!DOCTYPE html&
&title&Convert XML to JSON In Angular JS - SibeeshPassion &/title&
现在,如下添加所需的引用。
&script src=&jquery-2.1.3.min.js&&&/script&
&script src=&angular.min.js&&&/script&
&script src=&xml2json.js&&&/script&
你注意到了吗,我已经添加了xml2json.js文件?这就是将要转换的文件。你可以从下载文件。
现在创建一个控制器和应用程序指令,如下所示。
&div ng-app=&httpApp& ng-controller=&httpController&&
接下来我们需要做的是添加服务。你可以按如下方式添加$http服务。
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 aftC
.success(function (response) {
console.log(response);
这里的httpApp是我们的应用程序,httpController是我们的控制器。我们使用函数transformResponse转换响应。
转换请求和响应
在Angular& JS中,请求可以使用transformRequest函数转换,如果是响应的话,可以通过函数transformResponse转换。这些函数返回转换后的值。
下面是我们使用transformResponse函数的一个例子。
transformResponse: function (cnv) {
var x2js = new X2JS();
var aftCnv = x2js.xml_str2json(cnv);
return aftC
这个x2js.xml_str2json(CNV)将返回JSON对象,并从transformResponse函数返回aftCnv。听起来不错吧?一旦准备就绪,我们只要在浏览器控制台写JSON对象,就可以看到该对象了。
在Angular JS中转换XML为JSON,就是这么简单。祝大家Happy coding!
欢迎大家的火眼金睛。如果我有什么遗漏或写错的地方,请不吝指正。希望大家能够喜欢这篇文章。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6221次
排名:千里之外
原创:25篇
转载:74篇
(5)(15)(28)(17)(7)(11)(21)js如何解析xml字符串?
[问题点数:20分,结帖人xgia7]
js如何解析xml字符串?
[问题点数:20分,结帖人xgia7]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。&&&&Node.js实现的XML文件提取内容并转换为TXT
&Node.js实现的XML文件提取内容并转换为TXT
利用nodejs实现将指定目录下的以及嵌套目录下的所有xml文件去除标签并转为txt文件
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
开发技术下载排行
您当前C币:0&&&可兑换 0 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
Node.js实现的XML文件提取内容并转换为TXT
所需积分:2
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
Node.js实现的XML文件提取内容并转换为TXT
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员$http&是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。
读取 JSON 文件
下是存储在web服务器上的 JSON 文件:
"records": [
"Name": "Alfreds Futterkiste",
"City": "Berlin",
"Country": "Germany"
"Name": "Ana Trujillo Emparedados y helados",
"City": "Mxico D.F.",
"Country": "Mexico"
"Name": "Antonio Moreno Taquera",
"City": "Mxico D.F.",
"Country": "Mexico"
"Name": "Around the Horn",
"City": "London",
"Country": "UK"
"Name": "B's Beverages",
"City": "London",
"Country": "UK"
"Name": "Berglunds snabbk枚p",
"City": "Lule",
"Country": "Sweden"
"Name": "Blauer See Delikatessen",
"City": "Mannheim",
"Country": "Germany"
"Name": "Blondel pre et fils",
"City": "Strasbourg",
"Country": "France"
"Name": "Blido Comidas preparadas",
"City": "Madrid",
"Country": "Spain"
"Name": "Bon app'",
"City": "Marseille",
"Country": "France"
"Name": "Bottom-Dollar Marketse",
"City": "Tsawassen",
"Country": "Canada"
"Name": "Cactus Comidas para llevar",
"City": "Buenos Aires",
"Country": "Argentina"
"Name": "Centro comercial Moctezuma",
"City": "Mxico D.F.",
"Country": "Mexico"
"Name": "Chop-suey Chinese",
"City": "Bern",
"Country": "Switzerland"
"Name": "Comrcio Mineiro",
"City": "So Paulo",
"Country": "Brazil"
AngularJS $http
AngularJS $http 是一个用于读取web服务器上数据的服务。
$http.get(url) 是用于读取服务器数据的函数。
&div ng-app="myApp" ng-controller="customersCtrl"&
&li ng-repeat="x in names"&
{{ x.Name + ', ' + x.Country }}
&script type="text/javascript" src="js/angular.min.js"&&/script&
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
$http.get("js/text.json")
.success(function(response) {$scope.names = response.});
Alfreds Futterkiste, Germany
Ana Trujillo Emparedados y helados, Mexico
Antonio Moreno Taquera, Mexico
Around the Horn, UK
B's Beverages, UK
Berglunds snabbk枚p, Sweden
Blauer See Delikatessen, Germany
Blondel pre et fils, France
Blido Comidas preparadas, Spain
Bon app', France
Bottom-Dollar Marketse, Canada
Cactus Comidas para llevar, Argentina
Centro comercial Moctezuma, Mexico
Chop-suey Chinese, Switzerland
Comrcio Mineiro, Brazil &&
AngularJS 应用通过&ng-app&定义。应用在 &div& 中执行。
ng-controller&指令设置了&controller 对象&名。
函数&customersController&是一个标准的 JavaScript&对象构造器。
控制器对象有一个属性:&$scope.names。
$http.get()&从web服务器上读取静态&JSON 数据。
服务器数据文件为: &我这儿是写了text.json。
当从服务端载入 JSON 数据时,$scope.names&变为一个数组。
&注:以上代码也可以用于读取数据库数据。
转载地址:/angularjs/angularjs-http.html
阅读(...) 评论()

我要回帖

更多关于 xml文件转化为excel 的文章

 

随机推荐