javascript中xml操作實(shí)現(xiàn)代碼
更新時(shí)間:2011年11月21日 22:17:03 作者:
好久沒寫了。感覺今時(shí)今日,HTML5 還依然只是一種玩票的東東。但愿 w3c 的標(biāo)準(zhǔn)可以早一點(diǎn)出臺,不要讓各種瀏覽器的兼容問題和支持程度搞死
JavaScript 端:
//初始化頁面
function init() {
var ary = JSONToArray(XMLReader("node","content.dibi"));
var divtoc = document.getElementById("div_toc");
pageCount = ary.length;
for(k = 0; k < ary.length; k++){
obj = eval('(' + ary[k] + ')');
divtoc.innerHTML += "<a href='javascript:changeImage(" + obj.page.substring(obj.page.length-1) + ")'>"
+ obj.label + "</a> ";
}
page = 1;
changeImage(page);
var pageManager = document.getElementById("div_page");
pageManager.innerHTML = "<a href='javascript:changePage(0)'>上一頁</a> "
+ "<a href='javascript:changePage(1)'>下一頁</a><br/><br/>";
var ary2 = JSONToArray(XMLReader("meta","content.dibi"));
var divmeta = document.getElementById("div_meta");
var styStr = "<table>"
for(l = 0; l < ary2.length; l++){
obj2 = eval('(' + ary2[l] + ')');
styStr += "<tr><td>" + obj2.name + "</td><td>" + obj2.content + "</td></tr>";
}
divmeta.innerHTML = styStr + "</table>";
}
//解析.dibi 文件。
function XMLReader(key,fileName) {
var parse = BrowserValidator();
parse.load(fileName);
var json = "";
try{
var dom = parse.documentElement;
var attrLength = 0;
for (i = 0; i < dom.getElementsByTagName(key).length; i++) {
attrLength = dom.getElementsByTagName(key)[i].attributes.length;
objMsg = ",{";
for(j = 0; j < attrLength; j++){
objMsg += "'" + dom.getElementsByTagName(key)[i].attributes[j].name
+ "':'" + dom.getElementsByTagName(key)[i].attributes[j].value + "',";
}
objMsg = objMsg.substring(0,objMsg.length-1);
json += objMsg + "}";
}
json = json.substring(1);
}catch(e){}
return json;
}
//判斷瀏覽器類型。支持 IE ,fireFox。
function BrowserValidator(){
var result;
if(!window.DOMParser && window.ActiveXObject) {
result = new ActiveXObject("Microsoft.XMLDOM");
result.async = false;
}
else if(document.implementation && document.implementation.createDocument) {
result = document.implementation.createDocument("", "", null);
result.async = false;
}
return result;
}
var page = 1; //當(dāng)前頁
var pageCount; //總頁數(shù)
//根據(jù)點(diǎn)擊改變頁面圖片
function changeImage(page1){
page = page1;
var divimg = document.getElementById("div_img");
divimg.innerHTML = "<img width='500' src = 'images/" + page +".jpg'/>";
}
//上頁及下頁
function changePage(flag){
if(flag == 0 && page > 1){
page--;
}
if(flag == 1 && page < pageCount){
page++;
}
changeImage(page);
}
//將 JSON 數(shù)據(jù)轉(zhuǎn)換成數(shù)組
function JSONToArray(json){
return json.replace(new RegExp("},", "g"), "}|").split("|");
}
HTML 端:
<html>
<head>
<title></title>
<script language="javascript" type="text/javascript" charset='gbk' src="xmlhelper.js"></script>
</head>
<body onload="init()">
<div id="div_toc"></div>
<div id="div_img"></div>
<div id="div_page"></div>
<div id="div_meta"></div>
</body>
</html>
XML 端:略。
復(fù)制代碼 代碼如下:
//初始化頁面
function init() {
var ary = JSONToArray(XMLReader("node","content.dibi"));
var divtoc = document.getElementById("div_toc");
pageCount = ary.length;
for(k = 0; k < ary.length; k++){
obj = eval('(' + ary[k] + ')');
divtoc.innerHTML += "<a href='javascript:changeImage(" + obj.page.substring(obj.page.length-1) + ")'>"
+ obj.label + "</a> ";
}
page = 1;
changeImage(page);
var pageManager = document.getElementById("div_page");
pageManager.innerHTML = "<a href='javascript:changePage(0)'>上一頁</a> "
+ "<a href='javascript:changePage(1)'>下一頁</a><br/><br/>";
var ary2 = JSONToArray(XMLReader("meta","content.dibi"));
var divmeta = document.getElementById("div_meta");
var styStr = "<table>"
for(l = 0; l < ary2.length; l++){
obj2 = eval('(' + ary2[l] + ')');
styStr += "<tr><td>" + obj2.name + "</td><td>" + obj2.content + "</td></tr>";
}
divmeta.innerHTML = styStr + "</table>";
}
//解析.dibi 文件。
function XMLReader(key,fileName) {
var parse = BrowserValidator();
parse.load(fileName);
var json = "";
try{
var dom = parse.documentElement;
var attrLength = 0;
for (i = 0; i < dom.getElementsByTagName(key).length; i++) {
attrLength = dom.getElementsByTagName(key)[i].attributes.length;
objMsg = ",{";
for(j = 0; j < attrLength; j++){
objMsg += "'" + dom.getElementsByTagName(key)[i].attributes[j].name
+ "':'" + dom.getElementsByTagName(key)[i].attributes[j].value + "',";
}
objMsg = objMsg.substring(0,objMsg.length-1);
json += objMsg + "}";
}
json = json.substring(1);
}catch(e){}
return json;
}
//判斷瀏覽器類型。支持 IE ,fireFox。
function BrowserValidator(){
var result;
if(!window.DOMParser && window.ActiveXObject) {
result = new ActiveXObject("Microsoft.XMLDOM");
result.async = false;
}
else if(document.implementation && document.implementation.createDocument) {
result = document.implementation.createDocument("", "", null);
result.async = false;
}
return result;
}
var page = 1; //當(dāng)前頁
var pageCount; //總頁數(shù)
//根據(jù)點(diǎn)擊改變頁面圖片
function changeImage(page1){
page = page1;
var divimg = document.getElementById("div_img");
divimg.innerHTML = "<img width='500' src = 'images/" + page +".jpg'/>";
}
//上頁及下頁
function changePage(flag){
if(flag == 0 && page > 1){
page--;
}
if(flag == 1 && page < pageCount){
page++;
}
changeImage(page);
}
//將 JSON 數(shù)據(jù)轉(zhuǎn)換成數(shù)組
function JSONToArray(json){
return json.replace(new RegExp("},", "g"), "}|").split("|");
}
HTML 端:
復(fù)制代碼 代碼如下:
<html>
<head>
<title></title>
<script language="javascript" type="text/javascript" charset='gbk' src="xmlhelper.js"></script>
</head>
<body onload="init()">
<div id="div_toc"></div>
<div id="div_img"></div>
<div id="div_page"></div>
<div id="div_meta"></div>
</body>
</html>
XML 端:略。
相關(guān)文章
JS?requestVideoFrameCallback()?簡單案例
這篇文章主要介紹了JS?requestVideoFrameCallback()簡單案例,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07
JS與SQL方式隨機(jī)生成高強(qiáng)度密碼示例
這篇文章主要介紹了JS與SQL方式隨機(jī)生成高強(qiáng)度密碼,結(jié)合實(shí)例形式分析了javascript方式與SQL方式生成高強(qiáng)度密碼的相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
頁面載入結(jié)束自動調(diào)用js函數(shù)示例
當(dāng)頁面加載完成后自動調(diào)用預(yù)先編好的js函數(shù),在某些特殊情況下還是比較實(shí)用的,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下2013-09-09
結(jié)合?ES6?類編寫JavaScript?創(chuàng)建型模式
這篇文章主要介紹了結(jié)合ES6類編寫JavaScript創(chuàng)建型模式,本文開始系統(tǒng)性的對20多種JavaScript?設(shè)計(jì)模式進(jìn)行簡單概述,然后結(jié)合ES6類的方式來編寫實(shí)例代碼展示其使用方式,需要的朋友可以參考一下2022-07-07
javascript html5移動端輕松實(shí)現(xiàn)文件上傳
這篇文章主要為大家詳細(xì)介紹了javascript html5移動端輕松實(shí)現(xiàn)文件上傳的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03
JS動態(tài)添加元素及綁定事件造成程序重復(fù)執(zhí)行解決
這篇文章主要給大家介紹了關(guān)于JS動態(tài)添加元素及綁定事件造成程序重復(fù)執(zhí)行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-12-12

