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

1 加载xml文件

var xmlDoc = loadXMLDoc("negativeData.xml");
 function loadXMLDoc(dname) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET", dname, false);
xhttp.send("");
return xhttp.responseXML;
}

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

<root>
  <subNeg Id='1'>
    NegName
  </subNeg>
</root>

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

xml格式如下:
<?xml version="1.0" encoding="utf-8" ?>
<Negative>
<subNeg cate="一、农、林、牧、渔业">
<neg ord="(一)" cate="种业">
未经批准,禁止采集农作物种质资源。
</neg>
<neg ord="(二)" cate="农业">
未经批准,禁止占用农作物种质资源。
</neg>
</subNeg>
</Negative>
js读取xml并遍历 Negative 节点的子节点,并输出表格
    function inidata() {

        var xmlDoc;
//加载xml
xmlDoc = loadXMLDoc("negativeData.xml"); var htmlstr = new Array();
//解析
var Negs = xmlDoc.getElementsByTagName("subNeg");
console.log("Negs" + Negs.length);
$(Negs).each(function (i, v) {
htmlstr = new Array();
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>';
htmlstr.push(thead);
var category = v.attributes["cate"].textContent;
console.log(category);
console.log("category" + category);
htmlstr.push('<tr><td colspan="3" style="font-size:20px;">' + category + '</td></tr>');
var subs = v.getElementsByTagName("neg");
$(subs).each(function (si, sv) {
var orinfo = sv.attributes["ord"].textContent;
var cate = sv.attributes["cate"].textContent;
var text = sv.textContent;
htmlstr.push('<tr><td scope="row">' + orinfo + '</td><td scope="row">' + cate + '</td><td scope="row" style="padding:10px;">' + text + '</td></tr > ');
});
htmlstr.push("</table ")
$("#datalist").append(htmlstr.join(''));
});
}

加载xml的方法:

 function loadXMLDoc(dname) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET", dname, false);
xhttp.send("");
return xhttp.responseXML;
}

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. Python篇函数总结【输出函数】

    1.raw_input("\n\nPress the enter key to exit.") 以上代码中 ,"\n\n"在结果输出前会输出两个新的空行.一旦用 ...

  2. 基于Oracle数据库登陆界面及功能实现 Java版

    首先要在Oracle数据库创建表文件,包括建立表头以及关键字(唯一标识符),此次程序所用的表名称为SW_USER_INFO,表头有UNAME.UKEY.USEX等,关键字为UCC,然后添加一条记录,用 ...

  3. PHP面试常考内容之面向对象(2)

    PHP面试专栏正式起更,每周一.三.五更新,提供最好最优质的PHP面试内容.继上一篇"PHP面试常考内容之面向对象(1)"发表后,今天更新(2),需要(1)的可以直接点击文字进行跳 ...

  4. 第8章 File I/O,File类操作文件的属性

    1.文件 1.1.什么是文件? 答:文件可认为是相关记录或放在一起的数据的集合 1.2.文件- -般存储在哪里? 答: 磁盘,硬盘,文件夹 1.3.JAVA程序如何访向文件属性? JAVA API:i ...

  5. 利用shell脚本[带注释的]部署单节点多实例es集群(docker版)

    文章目录 目录结构 install_docker_es.sh elasticsearch.yml.template 没事写写shell[我自己都不信,如果不是因为工作需要,我才不要写shell],努力 ...

  6. 图解AI数学基础 | 概率与统计

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/83 本文地址:http://www.showmeai.tech/article-det ...

  7. CMake 交叉编译

    CMake 交叉编译 交叉编译就是说在平台 A (宿主机)上编译出可以在平台 B (目标机) 上运行的程序,比如在 x86 上编译 ARM 程序 要交叉编译首先要去下载目标平台的工具链,比如要编译 A ...

  8. python-利用shutil模块rmtree方法可以将文件及其文件夹下的内容删除

    import shutil import os image_path = os.path.join(os.path.dirname(__file__),'image') # 如果存在image目录则删 ...

  9. Spring Cloud Nacos实现动态配置加载的源码分析

    理解了上述Environment的基本原理后,如何从远程服务器上加载配置到Spring的Environment中. NacosPropertySourceLocator 顺着前面的分析思路,我们很自然 ...

  10. k8s中运行busybox

    简介 参考百度百科 BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件. BusyBox 包含了一些简单的工具,例如ls.cat和echo等等,还包含了一些更大.更复杂的工具,例gr ...