本文旨在: js加载xml文件并读取节点信息

1 加载xml文件

  1. var xmlDoc = loadXMLDoc("negativeData.xml");
  1. function loadXMLDoc(dname) {
  2. if (window.XMLHttpRequest) {
  3. xhttp = new XMLHttpRequest();
  4. } else {
  5. xhttp = new ActiveXObject("Microsoft.XMLHTTP");
  6. }
  7. xhttp.open("GET", dname, false);
  8. xhttp.send("");
  9. return xhttp.responseXML;
  10. }

2  根据tagName获取节点,读取属性值以及文本内容

  1. <root>
  2.   <subNeg Id='1'>
  3.     NegName
  4.   </subNeg>
  5. </root>

  6. var Negs = xmlDoc.getElementsByTagName("subNeg"); //读取节点
  7. var attra=Negs.attributes['Id'].textContent; //读取属性值
  8. var text=Negs.textContent; //读取节点文本部分
  1. 以下实现:下面加载xml格式遍历子节点,输出为表格的功能

    xml格式如下:
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <Negative>
  3. <subNeg cate="一、农、林、牧、渔业">
  4. <neg ord="(一)" cate="种业">
  5. 未经批准,禁止采集农作物种质资源。
  6. </neg>
  7. <neg ord="(二)" cate="农业">
  8. 未经批准,禁止占用农作物种质资源。
  9. </neg>
  10. </subNeg>
  11. </Negative>
  1. js读取xml并遍历 Negative 节点的子节点,并输出表格
  1. function inidata() {
  2.  
  3. var xmlDoc;
  4. //加载xml
  5. xmlDoc = loadXMLDoc("negativeData.xml");
  6.  
  7. var htmlstr = new Array();
  8. //解析
  9. var Negs = xmlDoc.getElementsByTagName("subNeg");
  10. console.log("Negs" + Negs.length);
  11. $(Negs).each(function (i, v) {
  12. htmlstr = new Array();
  13. var thead = '<table><thead><tr><th style="width: 10%; text-align: center;">序号</th><th style="width: 20%; text-align: center;">领域</th><th style="width: 70%; text-align: center;">特别管理措施</th></tr></thead>';
  14. htmlstr.push(thead);
  15. var category = v.attributes["cate"].textContent;
  16. console.log(category);
  17. console.log("category" + category);
  18. htmlstr.push('<tr><td colspan="3" style="font-size:20px;">' + category + '</td></tr>');
  19. var subs = v.getElementsByTagName("neg");
  20. $(subs).each(function (si, sv) {
  21. var orinfo = sv.attributes["ord"].textContent;
  22. var cate = sv.attributes["cate"].textContent;
  23. var text = sv.textContent;
  24. htmlstr.push('<tr><td scope="row">' + orinfo + '</td><td scope="row">' + cate + '</td><td scope="row" style="padding:10px;">' + text + '</td></tr > ');
  25. });
  26. htmlstr.push("</table ")
  27. $("#datalist").append(htmlstr.join(''));
  28. });
  29. }

加载xml的方法:

  1. function loadXMLDoc(dname) {
  2. if (window.XMLHttpRequest) {
  3. xhttp = new XMLHttpRequest();
  4. } else {
  5. xhttp = new ActiveXObject("Microsoft.XMLHTTP");
  6. }
  7. xhttp.open("GET", dname, false);
  8. xhttp.send("");
  9. return xhttp.responseXML;
  10. }

js 加载 xml 及遍历属性及内容 整理的更多相关文章

  1. 通过JS加载XML文件,跨浏览器兼容

    引言 通过JS加载XML文件,跨多种浏览器兼容. 在Chrome中,没有load方法,需要特殊处理! 解决方案 部分代码 try //Internet Explorer { xmlDoc=new Ac ...

  2. js便签笔记(8)——js加载XML字符串或文件

    1. 加载XML文件 方法1:ajax方式.代码如下: var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObje ...

  3. js加载XML文件

    // XML文件 <?xml version="1.0" encoding="gb2312"?> <root> <father n ...

  4. JS加载&解析XML文件,浏览器兼容

    #  JS加载XML,浏览器之间有差异,代码如下 this.createXMLDom = function() { var xmldoc; var xmlFile = "XXXXXXXXX. ...

  5. dom4j加载xml文件

    ## dom4j加载xml文件 ``` // 1. 加载xml文件 InputStream is = MyTest.class.getResourceAsStream("user.xml&q ...

  6. javascript加载XML字符串或文件

    1. 加载XML文件 方法1:ajax方式.代码如下: var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObje ...

  7. 优化JS加载时间过长的一种思路

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 去年公司在漳州的一个项目中,现场工程人员反映地图部分出图有点 ...

  8. FusionCharts简单教程(二)-----使用js加载图像和setDataXML()加载数据

          前面一篇对FusionCharts进行了一个简单的介绍,而且建立了我们第一个图形,但是那个是在HTML中使用<OBJECT>和<EMBED>标记来加载图形的,但是这 ...

  9. JS加载时间线

    1.创建Document对象,开始解析web页面.解析HTML元素和他们的文本内容后添加Element对象和Text节点到文档中.这个阶段document.readyState = 'loading' ...

随机推荐

  1. Spring中的属性注入注解

    @Inject使用 JSR330规范实现的 默认按照类型注入 如果需要按照名称注入,@Inject需要和@Name一起使用 @Resource JSR250规范实现的,需要导入不同的包 @Resour ...

  2. 《PHP程序员面试笔试宝典》——如何解决求职中的时间冲突问题?

    如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 对求职者而言,求职季就是一个赶场季,一天少则几家.十几家企业入校招聘,多则几十家.上百家企业招兵买马.企业多,选择项自然 ...

  3. redis(二)-----redis基本数据类型之字符串

    Redis的全称是REmote Dictionary Server,它主要提供了5种数据结构:字符串.哈希.列表.集合.有序集合,同时在字符串的基础之上演变 出了位图(Bitmaps)和HyperLo ...

  4. yum 搭建私有仓库

    今日内容 Linux 中安装软件的三种方法 yum 私有仓库 selinux 和 firewalld (iprables) 解决系统乱码 内容详细 一.Linux 安装软件的三种方法 rpm安装.yu ...

  5. c++ 子类与父类之间的类型转换

    子类与父类之间的类型转换 先给一段代码 class Base { public: int a = 10; }; class pub_Derv : public Base { Base *getBase ...

  6. JAVA8学习——新的时间日期API&Java8总结

    JAVA8-时间日期API java8之前用过的时间日期类. Date Calendar SimpleDateFormat 有很多致命的问题. 1.没有时区概念 2.计算麻烦,实现困难 3.类是可变的 ...

  7. validator参数校验

    目录 validator参数校验 validator参数校验 type Req struct { Sn string `json:"sn" binding:"requir ...

  8. [自动化]基于kolla-ceph的自动化部署ceph集群

    kolla-ceph来源: 项目中的部分代码来自于kolla和kolla-ansible kolla-ceph的介绍: 1.镜像的构建很方便, 基于容器的方式部署,创建.删除方便 2.kolla-ce ...

  9. Vue 源码解读(8)—— 编译器 之 解析(上)

    特殊说明 由于文章篇幅限制,所以将 Vue 源码解读(8)-- 编译器 之 解析 拆成了上下两篇,所以在阅读本篇文章时请同时打开 Vue 源码解读(8)-- 编译器 之 解析(下)一起阅读. 前言 V ...

  10. 『无为则无心』Python基础 — 61、Python中的迭代器

    目录 1.迭代的概念 2.迭代器的概念 3.可迭代的对象(Iterable) 4.迭代器对象(Iterator) 5.迭代器的使用体验 (1)基本用法 (2)实际应用 1.迭代的概念 (1)什么是迭代 ...