博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在jquery中处理带有命名空间的XML数据
阅读量:4973 次
发布时间:2019-06-12

本文共 1728 字,大约阅读时间需要 5 分钟。

这一篇记录一个小技巧。

如果你在做AJAX应用,则你可能经常会用到jquery(或者其他框架)处理服务返回的数据。如果用Jquery处理Json格式,将是相当方便的。但不幸的是,很多服务返回的数据仍然是XML格式的。

jquery对于xml这种数据的处理是内置支持的,这一点没有任何问题。但前提是返回的数据没有带任何命名空间。例如下面这份数据

要处理这样的数据,jquery代码大致如下

var div = $("#placeholder");                        // 处理不带命名空间的xml            $.get("data.xml", null, function (data) {                var employees = $("Employee", data); //找到所有的Employee节点                var ul = $("
    "); employees.each(function () { $("
  • ").text($(this).attr("firstName") + " " + $(this).attr("lastName")).appendTo(ul);// 将每一行数据构造一个新的li标签,并且将其插入到ul中 }); ul.appendTo(div); });

    但如果我们的XML数据带有命名空间,则上述代码就会无效。原因是因为jquery默认处理不了命名空间

    为了解决这个问题,有热心的网友,编写了一个jquery插件,叫做jquery.xmlns.js,有兴趣可以通过下面了解和下载

    那么,我们可以用如下的方法来解决问题

    $.xmlns["d"] = "http://tech.xizhang.com";            // 处理带命名空间的xml            $.get("datawithnamespace.xml", null, function (data) {                var employees = $("d|Employee", data); //找到所有的Employee节点                var ul = $("
      "); employees.each(function () { $("
    • ").text($(this).attr("firstName") + " " + $(this).attr("lastName")).appendTo(ul); }); ul.appendTo(div); });

      不得不说,XML这个技术规范中的命名空间真是一个很不好的设计。增加了很多麻烦,胜过于它带来的好处。

       

      本文的例子完整代码如下

      <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>                    

      最后,在浏览器中看到的效果如下。有图有真相

      转载于:https://www.cnblogs.com/chenxizhang/archive/2011/06/12/2078975.html

      你可能感兴趣的文章
      ODBC, OLEDB, ADO, ADO.Net的演化简史
      查看>>
      如何实现div的高度100%填充
      查看>>
      计算机的分类
      查看>>
      探索c#之一致性Hash详解
      查看>>
      android 到底是什么决定了app的名称 application label activity label
      查看>>
      40026118素数的个数
      查看>>
      $.parseJSON失效的问题
      查看>>
      Linux 基础命令
      查看>>
      Vue的自定义组件之间的数据传递
      查看>>
      laravel5.2总结--请求
      查看>>
      web上传文件——python
      查看>>
      Vue : Expected the Promise rejection reason to be an Error
      查看>>
      使用单体模式设计原生js插件
      查看>>
      Java IO 用递归实现目录删除和树形目录展示 Java实现
      查看>>
      iOS 绘图
      查看>>
      CnBlogs博文demo演示技巧比较:jsfiddle完胜
      查看>>
      TPrinter控制打印机
      查看>>
      设置HTML表格细边框
      查看>>
      Android自动截屏小脚本
      查看>>
      iptables 累计(Accounting)
      查看>>