利用Microsoft.XMLHTTP和Microsoft.XMLDOM实现xml文件的读取
var HTML = "";
var space = "";
var blank = "";
function getSubject()
{
var xmlDoc;
if(window.ActiveXObject)
{
//解决JavaScript请求跨域的问题
var xml = new ActiveXObject("Microsoft.XMLHTTP");
var xmlurl = appPath+'/standardocs/nav_getStandarXml.do';
//xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xml.open("post",xmlurl,false);
xml.send(null);
//debugger;
//获得操作的xml文件的对象
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
//xmlDoc.setProperty("SerpoverHTTPRequest", true);
//alert("ShareFileUrl:"+ShareFileUrl+"menu_XML.xml");
xmlDoc.load(xml.responseXML);
if(xmlDoc == null)
{
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
window.location.href='/index.do';
return;
}
//解析xml文件,判断是否出错
if(xmlDoc.parseError.errorCode != 0)
{
alert(xmlDoc.parseError.reason);
return;
}
//获得根接点
var nodes = xmlDoc.documentElement.childNodes;
//得到根接点下共有子接点个数,并循环
HTML="<table width=100% border=0 cellpadding=0 cellspacing=0 style='font-size:12px'>";
for(var i=0; i<nodes.length; i++)
{
//如果接点名为 tree
if(nodes(i).nodeName == "tree")
{
readTree(nodes(i));
}
//如果接点名为 node
else if(nodes(i).nodeName == "node")
{
readNode(nodes(i));
}
}
HTML += "</table>";
//删除对象
delete(xmlDoc);
//显示HTML
var mainShow = document.getElementById("show");
mainShow.innerHTML = HTML;
return;
}
else if (document.implementation && document.implementation.createDocument)
{
xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async = false;
//alert("ShareFileUrl:"+ShareFileUrl);
xmlDoc.load("menu_XML.xml");
if (xmlDoc.documentElement.tagName != "parsererror") {
//获得根接点
var nodes = xmlDoc.documentElement.childNodes;
//得到根接点下共有子接点个数,并循环
HTML="<table width=100% border=0 cellpadding=0 cellspacing=0 style='font-size:12px'>";
for(var i=0; i<nodes.length; i++)
{
//如果接点名为 tree
//alert(nodes[i].nodeName);
if(nodes[i].nodeName == "tree")
{
readTree_firefox(nodes[i]);
}
//如果接点名为 node
else if(nodes[i].nodeName == "node")
{
readNode_firefox(nodes[i]);
}
}
HTML += "</table>";
//删除对象
delete(xmlDoc);
//显示HTML
var showDiv = document.getElementById("show");
showDiv.innerHTML = HTML;
return;
} else
{
alert("An Error Occurred");
}
}
else
{
alert('您的浏览器不支持该脚本!');
}
}
//读Tree节点
function readTree(cI)
{
var nodes = cI.childNodes;
var menuHTML = space;
var pdf_link = "standardPDF";
HTML += "<tr><td height=24";
if(cI.getAttribute("lv") == "1")
{
HTML += " bgcolor=#c8d6f1";
}else if(cI.getAttribute("lv") == "2")
{
HTML += " bgcolor=#dfe8f7";
}
//点击菜单事件,调用divshow(vid)函数
HTML += " οnclick=javascript:divshow('"+cI.getAttribute("id")+"');";
HTML += " style='cursor:pointer'> ";
for(var j=0; j< cI.getAttribute("lv")-1; j++) {HTML += " "; }
menuHTML += blank;
//得到超级链接
//如果该节点的连接属性不为空,则连接
if(cI.selectNodes("link")(0).text != "")
{
menuHTML += "<a href='" +ShareFileUrl+ pdf_link + "/";
menuHTML += cI.selectNodes("link")(0).text;
menuHTML += "'";
//目标
if(cI.selectNodes("target")(0).text != "")
{
menuHTML += " target='" + cI.selectNodes("target")(0).text;
menuHTML += "'";
}
//点击菜单事件,调用divshow(vid)函数
//menuHTML += " οnclick=javascript:divshow('"+cI.getAttribute("id")+"');";
//得到节点标题
menuHTML += " title='";
menuHTML += cI.selectNodes("title")(0).text;
//结束
menuHTML += "'>";
}
//否则为空链接
else
{
//menuHTML += "#";
}
//得到节点的正文
menuHTML += cI.selectNodes("text")(0).text;
if(cI.selectNodes("link")(0).text != "")
{
menuHTML += "</a>";
}
//将menuHTML设置添加到HTML字符串
HTML += menuHTML;
HTML += "</td></tr>";
//得到该节点的属性值<span
HTML += "<tr><td>";
HTML += "<div id='"+cI.getAttribute("id")+"' ";
if(cI.getAttribute("lv") != "1" && cI.getAttribute("lv") == "2")
{
HTML += " style='display:none'";
}
HTML += ">/n";
HTML += "<table width=100% border=0 cellpadding=0 cellspacing=0 style='font-size:12px'>";
for(var i=0; i<nodes.length; i++)
{
var tempImg = "";
tempImg += blank;
if(nodes(i).nodeName == "tree")
{
space += tempImg;
readTree(nodes(i));
space = "";
}
else if(nodes(i).nodeName == "node")
{
space += tempImg;
readNode(nodes(i));
}
}
HTML += "</table></div></td></tr>/n";
return;
}
//读Node节点
function readNode(cI)
{
var nodeHTML = space;
nodeHTML += blank;
//设置超级链接
nodeHTML += "<a href='";
//得到连接地址
nodeHTML += cI.selectNodes("link")(0).text;
//目标
if(cI.selectNodes("target")(0).text != "")
nodeHTML += "' target='"+cI.selectNodes("target")(0).text;
//得到节点标题
nodeHTML += "' title='";
nodeHTML += cI.selectNodes("title")(0).text;
//结束
nodeHTML += "'>";
//得到节点的正文
nodeHTML += cI.selectNodes("text")(0).text;
nodeHTML += "</a><br>/n";
HTML += nodeHTML;
//HTML += "<div id='"+cI.getAttribute("id")+"'>";
space = "";
return;
}
//读Tree节点
function readTree_firefox(cI)
{
var nodes = cI.childNodes;
var menuHTML = space;
var pdf_link = "standardPDF";
HTML += "<tr><td height=24";
if(cI.getAttribute("lv") == "1")
{
HTML += " bgcolor=#c8d6f1";
}else if(cI.getAttribute("lv") == "2")
{
HTML += " bgcolor=#dfe8f7";
}
//点击菜单事件,调用divshow(vid)函数
HTML += " οnclick=javascript:divshow('"+cI.getAttribute("id")+"');";
HTML += " style='cursor:pointer'> ";
for(var j=0; j< cI.getAttribute("lv")-1; j++) {HTML += " "; }
menuHTML += blank;
//得到超级链接
//如果该节点的连接属性不为空,则连接
var cI_text = cI.getElementsByTagName("text")[0].textContent;
var cI_target = cI.getElementsByTagName("target")[0].textContent;
var cI_title = cI.getElementsByTagName("title")[0].textContent;
var cI_link = cI.getElementsByTagName("link")[0].textContent;
if(cI_link != "")
{
menuHTML += "<a href='" +ShareFileUrl+ pdf_link + "/";
menuHTML += cI_link;
menuHTML += "'";
//目标
if(cI_target != "")
{
menuHTML += " target='" + cI_target;
menuHTML += "'";
}
//点击菜单事件,调用divshow(vid)函数
//menuHTML += " οnclick=javascript:divshow('"+cI.getAttribute("id")+"');";
//得到节点标题
menuHTML += " title='";
menuHTML += cI_title;
//结束
menuHTML += "'>";
}
//否则为空链接
else
{
//menuHTML += "#";
}
//得到节点的正文
menuHTML += cI_text;
if(cI_link != "")
{
menuHTML += "</a>";
}
//将menuHTML设置添加到HTML字符串
HTML += menuHTML;
HTML += "</td></tr>";
//得到该节点的属性值<span
HTML += "<tr><td>";
HTML += "<div id='"+cI.getAttribute("id")+"' ";
if(cI.getAttribute("lv") != "1" && cI.getAttribute("lv") == "2")
{
HTML += " style='display:none'";
}
HTML += ">/n";
HTML += "<table width=100% border=0 cellpadding=1 cellspacing=0 style='font-size:12px'>";
for(var i=0; i<nodes.length; i++)
{
var tempImg = "";
tempImg += blank;
if(nodes[i].nodeName == "tree")
{
space += tempImg;
readTree_firefox(nodes[i]);
space = "";
}
else if(nodes[i].nodeName == "node")
{
space += tempImg;
readNode_firefox(nodes[i]);
}
}
HTML += "</table></div></td></tr>/n";
return;
}
//读Node节点
function readNode_firefox(cI)
{
var nodeHTML = space;
nodeHTML += blank;
//设置超级链接
/* nodeHTML += "<a href='";
//得到连接地址
nodeHTML += cI.selectNodes("link")(0).text;
//目标
if(cI.selectNodes("target")(0).text != "")
nodeHTML += "' target='"+cI.selectNodes("target")(0).text;
//得到节点标题
nodeHTML += "' title='";
nodeHTML += cI.selectNodes("title")(0).text;
//结束
nodeHTML += "'>";
//得到节点的正文
nodeHTML += cI.selectNodes("text")(0).text;
nodeHTML += "</a><br>/n";
HTML += nodeHTML;
//HTML += "<div id='"+cI.getAttribute("id")+"'>";
space = "";
*/
return;
}
//操作对象的显示还是隐藏效果
function divshow(vid)
{
var divObj = document.getElementById(vid);
if(divObj.style.display == "none")
{
divObj.style.display = "block";
}
else
{
divObj.style.display = "none";
}
return;
}
后台取得标准文档字符串代码
public void getStandarXml() throws Exception{
try{
response.setContentType("text/xml;charset=UTF-8");//让response以xml的形式进行请求
StandarXml standarxml = standarDocsManager.getStandarXML();
BufferedWriter wd = new BufferedWriter(new OutputStreamWriter(response.getOutputStream(), HTTP.UTF_8));
wd.write(standarxml.getStandarxml());//将xml写到前台
wd.flush();
}catch(Exception e){
e.printStackTrace();
}
}
利用Microsoft.XMLHTTP和Microsoft.XMLDOM实现xml文件的读取相关推荐
- android中XMl文件的读取
废话不多说了直接上代码: 新建一个Xml文件用于读取: test.xml <Languages cat="1"><lan id="1"> ...
- android的读取xml配置文件,android中XMl文件的读取
废话不多说了直接上代码: 新建一个Xml文件用于读取: test.xml java Eclipse Swift Xcode C# Visual Studio 后台: import android.su ...
- Qt编程之Xml文件的读取
目录 一.xml的格式说明 二.QT中读取xml的类与常用函数 三.代码思路 四.代码实现 五.结果展示 XML最主要的功能是数据传输,有的时候可以当一个小型的数据库来使用,因为其定义标签高度自由,所 ...
- 利用Eclipse/MyEclipse 实体类生成.hbm.xml文件
在Struts+Hibernate+Spring 三大框架开发web程序的时候,通常为了节省开发间,提高开发效率,通常会使用到许多三方插件,那么这次要给大家分享的是如何利用Eclipse/MyEcli ...
- html 读取本地xml文件,JS读取本地的XML文件
要想让JS读取本地的XML代码,得具备这样的条件,一般情况下,需要一个JS文件,一个XML文件,最后这两个文件就放在相同的路径下,这样方便调用. 一.XML文件代码示例 大众计算机学习网 www.dz ...
- 【JAVA】xml文件的读取
方法一 package com.test;import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXRea ...
- 从 ADNI 的 XML 文件中读取临床信息
本文配合手把手式介绍 ADNI 影像数据下载使用. 仅给出了如下读取XML文件中的project和subject信息的部分代码,读取其他内容采用一样的写法即可. 只适合自己批量读取一下XML文件,所以 ...
- C# winform 不同的窗体对同一XML文件进行读取
对数据进行写入 DataTable dingxing = new DataTable(); dingxing.Columns.Add("checker"); dingxing.Co ...
- python用模块读取xml文件_python读取xml文件
关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件. 什么是 ...
最新文章
- Android P 凹口屏支持,打造全面屏体验
- 领域驱动设计在互联网业务开发中的实践
- Docker之几种storage-driver比较
- layui复选框组件:如何操控隐藏域实现checked状态切换(含代码、案例、截图)
- php tcp keepcnt,故障处理---TCP KeepAlive
- 讲讲你理解的服务治理
- C/C++头文件全解析
- AGV机器人(1)基于视觉避障的理论基础
- 学习Java编程语言难不难
- 5.4.3控制器设计 微程序控制器 微指令的设计
- android5.1 xposed,Xposed框架oppo下载
- Android编程入门很简单pdf
- 二值图像分析:轮廓形状逼近与拟合
- 用户与计算机的交互界面是什么,终于知道交互界面设计是什么
- 数据分析的思维逻辑步骤
- 软件著作权转让的流程是怎么样的
- log4cplus的各种坑
- 无人机的自主与智能控制
- android之RecyclerView.Adapter介绍
- Oracle spm
热门文章
- 在Android中调用图片、视频、音频、录音、拍照
- Excel VBA高级编程-SQL检索(二)合并相同项并求和
- react在线文件_【前端新手也能做大项目】:从零打造一个属于自己的在线Visio项目实战【ReactJS 】 (一)...
- Hbase查询数据的总条数
- 【项目三、车牌检测+识别项目】二、使用YOLOV5进行车牌检测
- java创建自定义线程池,HR的话扎心了
- 挖掘机技术到底哪家强
- 消融实验(Ablation experiment)是什么?
- 基于嵌入式多芯片模组的微机保护平台
- linux 磁盘配额工具,磁盘配额管理 quotatool